ntfy/web/src/app/Prefs.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

71 lines
1.7 KiB
JavaScript
Raw Normal View History

2023-06-10 06:32:34 +12:00
import db from "./db";
2022-03-03 10:16:30 +13:00
2023-06-29 05:30:51 +12:00
export const THEME = {
2023-06-29 03:39:40 +12:00
DARK: "dark",
LIGHT: "light",
SYSTEM: "system",
};
2022-03-03 10:16:30 +13:00
class Prefs {
2023-06-14 00:02:54 +12:00
constructor(dbImpl) {
this.db = dbImpl;
}
2022-03-06 18:02:27 +13:00
async setSound(sound) {
this.db.prefs.put({ key: "sound", value: sound.toString() });
2022-03-03 10:16:30 +13:00
}
2022-03-06 18:02:27 +13:00
async sound() {
const sound = await this.db.prefs.get("sound");
2022-03-10 09:58:21 +13:00
return sound ? sound.value : "ding";
2022-03-03 10:16:30 +13:00
}
async setMinPriority(minPriority) {
this.db.prefs.put({ key: "minPriority", value: minPriority.toString() });
2022-03-03 10:16:30 +13:00
}
async minPriority() {
const minPriority = await this.db.prefs.get("minPriority");
2022-03-03 10:16:30 +13:00
return minPriority ? Number(minPriority.value) : 1;
}
async setDeleteAfter(deleteAfter) {
2023-06-15 00:31:31 +12:00
await this.db.prefs.put({ key: "deleteAfter", value: deleteAfter.toString() });
2022-03-03 10:16:30 +13:00
}
async deleteAfter() {
const deleteAfter = await this.db.prefs.get("deleteAfter");
2022-03-03 10:16:30 +13:00
return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week
}
2023-06-08 19:22:56 +12:00
async webPushEnabled() {
2023-06-11 12:42:02 +12:00
const webPushEnabled = await this.db.prefs.get("webPushEnabled");
return webPushEnabled?.value;
2023-06-08 19:22:56 +12:00
}
async setWebPushEnabled(enabled) {
await this.db.prefs.put({ key: "webPushEnabled", value: enabled });
}
2023-06-29 03:39:40 +12:00
2023-06-29 05:30:51 +12:00
async theme() {
const theme = await this.db.prefs.get("theme");
return theme?.value ?? THEME.SYSTEM;
2023-06-29 03:39:40 +12:00
}
2023-06-29 05:30:51 +12:00
async setTheme(mode) {
await this.db.prefs.put({ key: "theme", value: mode });
2023-06-29 03:39:40 +12:00
}
2023-07-06 05:33:45 +12:00
async markdownAlwaysEnabled() {
const record = await this.db.prefs.get("markdownAlwaysEnabled");
return record?.value ?? false;
}
async setMarkdownAlwaysEnabled(enabled) {
await this.db.prefs.put({ key: "markdownAlwaysEnabled", value: enabled });
}
2022-03-03 10:16:30 +13:00
}
2023-06-10 06:32:34 +12:00
const prefs = new Prefs(db());
2023-06-03 00:45:05 +12:00
export default prefs;