From 10036500cb0742e20232c7f8b5dd6baaeb639f9f Mon Sep 17 00:00:00 2001 From: Ren Amamiya <123083837+reyamir@users.noreply.github.com> Date: Fri, 8 Sep 2023 09:22:09 +0700 Subject: [PATCH] small fixes --- src/app.tsx | 13 ++++++++----- src/app/auth/onboarding/step-3.tsx | 9 +++++---- src/app/splash.tsx | 25 +++++++++++++++++-------- src/libs/ndk/instance.ts | 7 ++++++- 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/app.tsx b/src/app.tsx index 533b6582..320f1250 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,3 +1,4 @@ +import { message } from '@tauri-apps/api/dialog'; import { RouterProvider, createBrowserRouter, redirect } from 'react-router-dom'; import { AuthCreateScreen } from '@app/auth/create'; @@ -19,18 +20,20 @@ import './index.css'; async function Loader() { try { const account = await checkActiveAccount(); + const stronghold = sessionStorage.getItem('stronghold'); const privkey = JSON.parse(stronghold).state.privkey || null; + const onboarding = localStorage.getItem('onboarding'); const step = JSON.parse(onboarding).state.step || null; - if (step) { - return redirect(step); - } - if (!account) { return redirect('/auth/welcome'); } else { + if (step) { + return redirect(step); + } + if (!privkey) { return redirect('/auth/unlock'); } @@ -38,7 +41,7 @@ async function Loader() { return null; } catch (e) { - throw new Error('App failed to load'); + await message(e, { title: 'An unexpected error has occurred', type: 'error' }); } } diff --git a/src/app/auth/onboarding/step-3.tsx b/src/app/auth/onboarding/step-3.tsx index e9a6b437..8d87d760 100644 --- a/src/app/auth/onboarding/step-3.tsx +++ b/src/app/auth/onboarding/step-3.tsx @@ -49,6 +49,8 @@ export function OnboardStep3Screen() { } ); + const relaysAsArray = Array.from(data?.keys() || []); + const toggleRelay = (relay: string) => { if (relays.has(relay)) { setRelays((prev) => { @@ -61,8 +63,9 @@ export function OnboardStep3Screen() { }; const submit = async (skip?: boolean) => { - setLoading(true); try { + setLoading(true); + if (!skip) { for (const relay of relays) { await db.createRelay(relay); @@ -87,8 +90,6 @@ export function OnboardStep3Screen() { } }; - const relaysAsArray = Array.from(data?.keys() || []); - useEffect(() => { // save current step, if user close app and reopen it setStep('/auth/onboarding/step-3'); @@ -179,7 +180,7 @@ export function OnboardStep3Screen() { onClick={() => submit(true)} className="inline-flex h-11 w-full items-center justify-center rounded-lg px-6 font-medium leading-none text-white backdrop-blur-xl hover:bg-white/10 focus:outline-none" > - Skip, use default relays + Skip, use Lume default relays diff --git a/src/app/splash.tsx b/src/app/splash.tsx index 517625be..46be95fe 100644 --- a/src/app/splash.tsx +++ b/src/app/splash.tsx @@ -24,10 +24,6 @@ export function SplashScreen() { }; const prefetch = async () => { - const onboarding = localStorage.getItem('onboarding'); - const step = JSON.parse(onboarding).state.step || null; - if (step) await invoke('close_splashscreen'); - try { const user = await fetchUserData(); const data = await prefetchEvents(); @@ -51,11 +47,24 @@ export function SplashScreen() { }; useEffect(() => { - if (ndk) { - if (!db.account) invoke('close_splashscreen'); + async function initial() { + if (!db.account) { + await invoke('close_splashscreen'); + } else { + const onboarding = localStorage.getItem('onboarding'); + const step = JSON.parse(onboarding).state.step || null; - console.log('prefetching...'); - prefetch(); + if (step) { + await invoke('close_splashscreen'); + } else { + console.log('prefetching...'); + prefetch(); + } + } + } + + if (ndk) { + initial(); } }, [ndk, db.account]); diff --git a/src/libs/ndk/instance.ts b/src/libs/ndk/instance.ts index 72d54b76..fa6bf19c 100644 --- a/src/libs/ndk/instance.ts +++ b/src/libs/ndk/instance.ts @@ -57,7 +57,12 @@ export const NDKInstance = () => { async function initNDK() { const explicitRelayUrls = await getExplicitRelays(); - const instance = new NDK({ explicitRelayUrls, cacheAdapter }); + const instance = new NDK({ + explicitRelayUrls, + cacheAdapter, + // outboxRelayUrls: ['wss://purplepag.es'], + // enableOutboxModel: true, + }); try { await instance.connect(10000);