diff --git a/src/app/components/ContentLinkBlock.svelte b/src/app/components/ContentLinkBlock.svelte index 86ecec1a..4ebd5118 100644 --- a/src/app/components/ContentLinkBlock.svelte +++ b/src/app/components/ContentLinkBlock.svelte @@ -52,7 +52,7 @@ alt="Link preview" onerror={onError} src={imgproxy(preview.image)} - class="bg-alt max-h-72 object-contain object-center" /> + class="bg-alt max-h-72 rounded-t-box object-contain object-center" /> {/if}
{ if (controller.loading) return - const {signerPubkey, connectSecret, relays} = Nip46Broker.parseBunkerUrl(controller.bunker) - - if (!signerPubkey || relays.length === 0) { - return pushToast({ - theme: "error", - message: "Sorry, it looks like that's an invalid bunker link.", - }) - } - - controller.loading = true - try { + const {signerPubkey, connectSecret, relays} = Nip46Broker.parseBunkerUrl(controller.bunker) + + console.log({signerPubkey, connectSecret, relays}) + + if (!signerPubkey || relays.length === 0) { + return pushToast({ + theme: "error", + message: "Sorry, it looks like that's an invalid bunker link.", + }) + } + + controller.loading = true + const {clientSecret} = controller const broker = new Nip46Broker({relays, clientSecret, signerPubkey}) const result = await broker.connect(connectSecret, NIP46_PERMS) @@ -64,6 +66,13 @@ message: "Something went wrong, please try again!", }) } + } catch (e) { + console.error(e) + + return pushToast({ + theme: "error", + message: "Something went wrong, please try again!", + }) } finally { controller.loading = false } diff --git a/src/app/notifications.ts b/src/app/notifications.ts index e1ed0762..7ebd3002 100644 --- a/src/app/notifications.ts +++ b/src/app/notifications.ts @@ -1,5 +1,5 @@ import {derived} from "svelte/store" -import {synced, throttled} from "@welshman/store" +import {synced, localStorageProvider, throttled} from "@welshman/store" import {pubkey} from "@welshman/app" import {prop, spec, identity, now, groupBy} from "@welshman/lib" import type {TrustedEvent} from "@welshman/util" @@ -16,7 +16,11 @@ import {chats, getUrlsForEvent, userRoomsByUrl, repositoryStore} from "@app/stat // Checked state -export const checked = synced>("checked", {}) +export const checked = synced>({ + key: "checked", + defaultValue: {}, + storage: localStorageProvider, +}) export const deriveChecked = (key: string) => derived(checked, prop(key)) diff --git a/src/app/state.ts b/src/app/state.ts index 50010cc2..a4541b76 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -30,6 +30,7 @@ import { deriveEventsMapped, withGetter, synced, + localStorageProvider, } from "@welshman/store" import { getIdFilters, @@ -302,7 +303,11 @@ routerContext.getIndexerRelays = always(INDEXER_RELAYS) // Settings -export const canDecrypt = synced("canDecrypt", false) +export const canDecrypt = synced({ + key: "canDecrypt", + defaultValue: false, + storage: localStorageProvider, +}) export const SETTINGS = 38489 @@ -376,7 +381,11 @@ export type Wallet = info: NWCInfo } -export const wallet = synced("wallet", undefined) +export const wallet = synced({ + key: "wallet", + defaultValue: undefined, + storage: localStorageProvider, +}) export const getWebLn = () => (window as any).webln diff --git a/src/app/theme.ts b/src/app/theme.ts index 80298cfb..3784172b 100644 --- a/src/app/theme.ts +++ b/src/app/theme.ts @@ -1,3 +1,7 @@ -import {synced} from "@welshman/store" +import {synced, localStorageProvider} from "@welshman/store" -export const theme = synced("theme", "dark") +export const theme = synced({ + key: "theme", + defaultValue: "dark", + storage: localStorageProvider, +}) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 0b74bee5..cf9eb955 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -7,6 +7,7 @@ import {App} from "@capacitor/app" import {dev} from "$app/environment" import {goto} from "$app/navigation" + import {sync, localStorageProvider} from "@welshman/store" import {identity, memoize, sleep, defer, ago, WEEK, TaskQueue} from "@welshman/lib" import type {TrustedEvent, StampedEvent} from "@welshman/util" import { @@ -33,10 +34,11 @@ initStorage, repository, pubkey, - defaultStorageAdapters, session, + sessions, signer, dropSession, + defaultStorageAdapters, userInboxRelaySelections, loginWithNip01, loginWithNip46, @@ -178,6 +180,20 @@ } }) + // Sync current pubkey + sync({ + key: "pubkey", + store: pubkey, + storage: localStorageProvider, + }) + + // Sync user sessions + sync({ + key: "sessions", + store: sessions, + storage: localStorageProvider, + }) + await initStorage("flotilla", 8, { ...defaultStorageAdapters, events: new EventsStorageAdapter({