Prefs.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import db from "./db";
  2. class Prefs {
  3. constructor(dbImpl) {
  4. this.db = dbImpl;
  5. }
  6. async setSound(sound) {
  7. this.db.prefs.put({ key: "sound", value: sound.toString() });
  8. }
  9. async sound() {
  10. const sound = await this.db.prefs.get("sound");
  11. return sound ? sound.value : "ding";
  12. }
  13. async setMinPriority(minPriority) {
  14. this.db.prefs.put({ key: "minPriority", value: minPriority.toString() });
  15. }
  16. async minPriority() {
  17. const minPriority = await this.db.prefs.get("minPriority");
  18. return minPriority ? Number(minPriority.value) : 1;
  19. }
  20. async setDeleteAfter(deleteAfter) {
  21. await this.db.prefs.put({ key: "deleteAfter", value: deleteAfter.toString() });
  22. }
  23. async deleteAfter() {
  24. const deleteAfter = await this.db.prefs.get("deleteAfter");
  25. return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week
  26. }
  27. async webPushEnabled() {
  28. const webPushEnabled = await this.db.prefs.get("webPushEnabled");
  29. return webPushEnabled?.value;
  30. }
  31. async setWebPushEnabled(enabled) {
  32. await this.db.prefs.put({ key: "webPushEnabled", value: enabled });
  33. }
  34. }
  35. const prefs = new Prefs(db());
  36. export default prefs;