Browse Source
Nostr-Signature: 964e4a35978748cbbc5127daad5c8a0724b6df6f4342c5b0940dd16bc2e8262d 573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc f44401709ba7a5fdf988f149033d7aa9bd838e8d6b86cd6357d738e69fab405d0df70394910ceebdb22501518583280499320424a5e7b4999e91d1fb6a2b07b8main
9 changed files with 222 additions and 133 deletions
@ -0,0 +1,39 @@ |
|||||||
|
/** |
||||||
|
* Client-side messaging preferences storage using IndexedDB |
||||||
|
* This replaces the server-side in-memory storage |
||||||
|
*/ |
||||||
|
|
||||||
|
import { settingsStore } from '../settings-store.js'; |
||||||
|
import type { MessagingPreferences } from './preferences-types.js'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Store user messaging preferences in IndexedDB settings |
||||||
|
*/ |
||||||
|
export async function storePreferences( |
||||||
|
preferences: MessagingPreferences |
||||||
|
): Promise<void> { |
||||||
|
await settingsStore.updateSettings({ messagingPreferences: preferences }); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Retrieve user messaging preferences from IndexedDB |
||||||
|
*/ |
||||||
|
export async function getPreferences(): Promise<MessagingPreferences | null> { |
||||||
|
const settings = await settingsStore.getSettings(); |
||||||
|
return settings.messagingPreferences || null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Check if user has preferences configured |
||||||
|
*/ |
||||||
|
export async function hasPreferences(): Promise<boolean> { |
||||||
|
const preferences = await getPreferences(); |
||||||
|
return preferences !== null && preferences !== undefined; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Delete user messaging preferences |
||||||
|
*/ |
||||||
|
export async function deletePreferences(): Promise<void> { |
||||||
|
await settingsStore.updateSettings({ messagingPreferences: undefined }); |
||||||
|
} |
||||||
Loading…
Reference in new issue