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