Use capacitor preferences package instead of localStorage

This commit is contained in:
Matthew Remmel
2025-08-29 11:06:50 -04:00
committed by Jon Staab
parent 2672a8f922
commit c94d314f6d
11 changed files with 108 additions and 19 deletions
+2
View File
@@ -78,6 +78,7 @@ import {
userRoomsByUrl,
userSettingsValues,
} from "@app/core/state"
import {preferencesStorageProvider} from "@src/lib/storage"
// Utils
@@ -124,6 +125,7 @@ export const logout = async () => {
await clearStorage()
localStorage.clear()
await preferencesStorageProvider.clear()
}
// Synchronization
+2 -2
View File
@@ -31,7 +31,6 @@ import {
deriveEventsMapped,
withGetter,
synced,
localStorageProvider,
} from "@welshman/store"
import {
getIdFilters,
@@ -97,6 +96,7 @@ import {
publishThunk,
} from "@welshman/app"
import type {Thunk, Relay} from "@welshman/app"
import {preferencesStorageProvider} from "@src/lib/storage"
export const fromCsv = (s: string) => (s || "").split(",").filter(identity)
@@ -317,7 +317,7 @@ netContext.isEventValid = (event: TrustedEvent, url: string) =>
export const canDecrypt = synced({
key: "canDecrypt",
defaultValue: false,
storage: localStorageProvider,
storage: preferencesStorageProvider,
})
export const SETTINGS = "flotilla/settings"
+3 -2
View File
@@ -1,5 +1,5 @@
import {derived} from "svelte/store"
import {synced, localStorageProvider, throttled} from "@welshman/store"
import {synced, throttled} from "@welshman/store"
import {pubkey, relaysByUrl} from "@welshman/app"
import {prop, spec, identity, now, groupBy} from "@welshman/lib"
import type {TrustedEvent} from "@welshman/util"
@@ -13,13 +13,14 @@ import {
makeRoomPath,
} from "@app/util/routes"
import {chats, hasNip29, getUrlsForEvent, userRoomsByUrl, repositoryStore} from "@app/core/state"
import {preferencesStorageProvider} from "@src/lib/storage"
// Checked state
export const checked = synced<Record<string, number>>({
key: "checked",
defaultValue: {},
storage: localStorageProvider,
storage: preferencesStorageProvider,
})
export const deriveChecked = (key: string) => derived(checked, prop(key))
+3 -2
View File
@@ -1,7 +1,8 @@
import {synced, localStorageProvider} from "@welshman/store"
import {preferencesStorageProvider} from "@src/lib/storage"
import {synced} from "@welshman/store"
export const theme = synced({
key: "theme",
defaultValue: "dark",
storage: localStorageProvider,
storage: preferencesStorageProvider,
})