Update to new version of welshman, including new thunks and wrap manager
This commit is contained in:
+11
-51
@@ -8,10 +8,9 @@
|
||||
import {App, type URLOpenListenerEvent} from "@capacitor/app"
|
||||
import {dev} from "$app/environment"
|
||||
import {goto} from "$app/navigation"
|
||||
import {sync, localStorageProvider} from "@welshman/store"
|
||||
import {assoc, call, defer, dissoc, on, sleep, spec, TaskQueue} from "@welshman/lib"
|
||||
import type {TrustedEvent, StampedEvent} from "@welshman/util"
|
||||
import {WRAP} from "@welshman/util"
|
||||
import {sync} from "@welshman/store"
|
||||
import {assoc, call, defer, dissoc, on, sleep, spec} from "@welshman/lib"
|
||||
import type {StampedEvent} from "@welshman/util"
|
||||
import {Nip46Broker, makeSecret} from "@welshman/signer"
|
||||
import type {Socket, RelayMessage, ClientMessage} from "@welshman/net"
|
||||
import {
|
||||
@@ -33,6 +32,7 @@
|
||||
signer,
|
||||
signerLog,
|
||||
dropSession,
|
||||
shouldUnwrap,
|
||||
loginWithNip01,
|
||||
loginWithNip46,
|
||||
loadRelaySelections,
|
||||
@@ -55,8 +55,6 @@
|
||||
import {
|
||||
userSettingsValues,
|
||||
relaysPendingTrust,
|
||||
ensureUnwrapped,
|
||||
canDecrypt,
|
||||
getSetting,
|
||||
relaysMostlyRestricted,
|
||||
} from "@app/core/state"
|
||||
@@ -106,44 +104,6 @@
|
||||
...notifications,
|
||||
})
|
||||
|
||||
// migrate from localStorage to capacitor Preferences storage if needed
|
||||
const runMigration = async () => {
|
||||
const isSome = (item: any) => {
|
||||
return item !== undefined && item !== null && item !== ""
|
||||
}
|
||||
|
||||
const localStoragePubKey = await localStorageProvider.get("pubkey")
|
||||
if (isSome(localStoragePubKey)) {
|
||||
await preferencesStorageProvider.set("pubkey", localStoragePubKey)
|
||||
localStorage.removeItem("pubkey")
|
||||
}
|
||||
|
||||
const localStorageSessions = await localStorageProvider.get("sessions")
|
||||
if (isSome(localStorageSessions)) {
|
||||
await preferencesStorageProvider.set("sessions", localStorageSessions)
|
||||
localStorage.removeItem("sessions")
|
||||
}
|
||||
|
||||
const localStorageCanDecrypt = await localStorageProvider.get("canDecrypt")
|
||||
if (isSome(localStorageCanDecrypt)) {
|
||||
await preferencesStorageProvider.set("canDecrypt", localStorageCanDecrypt)
|
||||
localStorage.removeItem("canDecrypt")
|
||||
}
|
||||
|
||||
const localStorageChecked = await localStorageProvider.get("checked")
|
||||
if (isSome(localStorageChecked)) {
|
||||
await preferencesStorageProvider.set("checked", localStorageChecked)
|
||||
localStorage.removeItem("checked")
|
||||
}
|
||||
|
||||
const localStorageTheme = await localStorageProvider.get("theme")
|
||||
if (isSome(localStorageTheme)) {
|
||||
await preferencesStorageProvider.set("theme", localStorageTheme)
|
||||
localStorage.removeItem("theme")
|
||||
}
|
||||
}
|
||||
await runMigration()
|
||||
|
||||
// Listen for navigation messages from service worker
|
||||
navigator.serviceWorker?.addEventListener("message", event => {
|
||||
if (event.data && event.data.type === "NAVIGATE") {
|
||||
@@ -217,16 +177,9 @@
|
||||
}
|
||||
})
|
||||
|
||||
// Unwrap gift wraps as they come in, but throttled
|
||||
const unwrapper = new TaskQueue<TrustedEvent>({batchSize: 10, processItem: ensureUnwrapped})
|
||||
|
||||
repository.on("update", ({added}) => {
|
||||
for (const event of added) {
|
||||
loadRelaySelections(event.pubkey)
|
||||
|
||||
if ($canDecrypt && event.kind === WRAP) {
|
||||
unwrapper.push(event)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -244,6 +197,13 @@
|
||||
storage: preferencesStorageProvider,
|
||||
})
|
||||
|
||||
// Sync shouldUnwrap
|
||||
await sync({
|
||||
key: "shouldUnwrap",
|
||||
store: shouldUnwrap,
|
||||
storage: preferencesStorageProvider,
|
||||
})
|
||||
|
||||
// Sync application data (relay, events, etc)
|
||||
await storage.syncDataStores()
|
||||
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
import type {MakeNonOptional} from "@welshman/lib"
|
||||
import type {TrustedEvent} from "@welshman/util"
|
||||
import {Address, getIdFilters} from "@welshman/util"
|
||||
import {LOCAL_RELAY_URL} from "@welshman/relay"
|
||||
import {load} from "@welshman/net"
|
||||
import {load, LOCAL_RELAY_URL} from "@welshman/net"
|
||||
import {page} from "$app/stores"
|
||||
import {goto} from "$app/navigation"
|
||||
import Spinner from "@lib/components/Spinner.svelte"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<script lang="ts">
|
||||
import {onMount} from "svelte"
|
||||
import {goto} from "$app/navigation"
|
||||
import {shouldUnwrap} from "@welshman/app"
|
||||
import AddCircle from "@assets/icons/add-circle.svg?dataurl"
|
||||
import Compass from "@assets/icons/compass.svg?dataurl"
|
||||
import ChatRound from "@assets/icons/chat-round.svg?dataurl"
|
||||
@@ -12,11 +13,11 @@
|
||||
import ChatEnable from "@app/components/ChatEnable.svelte"
|
||||
import {pushModal} from "@app/util/modal"
|
||||
import {makeSpacePath} from "@app/util/routes"
|
||||
import {PLATFORM_NAME, PLATFORM_RELAYS, canDecrypt} from "@app/core/state"
|
||||
import {PLATFORM_NAME, PLATFORM_RELAYS} from "@app/core/state"
|
||||
|
||||
const addSpace = () => pushModal(SpaceAdd)
|
||||
|
||||
const openChat = () => ($canDecrypt ? goto("/chat") : pushModal(ChatEnable, {next: "/chat"}))
|
||||
const openChat = () => ($shouldUnwrap ? goto("/chat") : pushModal(ChatEnable, {next: "/chat"}))
|
||||
|
||||
onMount(() => {
|
||||
if (PLATFORM_RELAYS.length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user