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({