diff --git a/apps/desktop/src/routes/auth/create.tsx b/apps/desktop/src/routes/auth/create.tsx index 599a8531..e17fa188 100644 --- a/apps/desktop/src/routes/auth/create.tsx +++ b/apps/desktop/src/routes/auth/create.tsx @@ -1,7 +1,6 @@ import { useArk } from "@lume/ark"; import { CheckIcon, ChevronDownIcon, LoaderIcon } from "@lume/icons"; import { useStorage } from "@lume/storage"; -import { onboardingAtom } from "@lume/utils"; import NDK, { NDKEvent, NDKKind, @@ -9,11 +8,11 @@ import NDK, { NDKPrivateKeySigner, } from "@nostr-dev-kit/ndk"; import * as Select from "@radix-ui/react-select"; +import { UnlistenFn } from "@tauri-apps/api/event"; import { desktopDir } from "@tauri-apps/api/path"; import { Window } from "@tauri-apps/api/window"; import { save } from "@tauri-apps/plugin-dialog"; import { writeTextFile } from "@tauri-apps/plugin-fs"; -import { useSetAtom } from "jotai"; import { nanoid } from "nanoid"; import { getPublicKey, nip19 } from "nostr-tools"; import { useState } from "react"; @@ -42,7 +41,6 @@ export function CreateAccountScreen() { const storage = useStorage(); const services = useLoaderData() as NDKEvent[]; const navigate = useNavigate(); - const setOnboarding = useSetAtom(onboardingAtom); const [serviceId, setServiceId] = useState(services?.[0]?.id); const [loading, setIsLoading] = useState(false); @@ -87,8 +85,6 @@ export function CreateAccountScreen() { privkey: signer.privateKey, }); - setOnboarding(true); - return navigate("/auth/onboarding", { replace: true }); }; @@ -117,33 +113,47 @@ export function CreateAccountScreen() { ); // handle auth url request + let unlisten: UnlistenFn; let authWindow: Window; - remoteSigner.addListener("authUrl", (authUrl: string) => { + let account: string = undefined; + + remoteSigner.addListener("authUrl", async (authUrl: string) => { authWindow = new Window(`auth-${serviceId}`, { url: authUrl, title: domain, titleBarStyle: "overlay", - width: 415, - height: 600, + width: 600, + height: 650, center: true, closable: false, }); + unlisten = await authWindow.onCloseRequested(() => { + if (!account) { + setIsLoading(false); + unlisten(); + + return authWindow.close(); + } + }); }); // create new account - const account = await remoteSigner.createAccount( + account = await remoteSigner.createAccount( data.username, domain, data.email, ); if (!account) { - authWindow.close(); + unlisten(); setIsLoading(false); + authWindow.close(); + return toast.error("Failed to create new account, try again later"); } + unlisten(); authWindow.close(); // add account to storage @@ -165,7 +175,6 @@ export function CreateAccountScreen() { // await ark.createEvent({ kind: NDKKind.Metadata, content: "", tags: [] }); await ark.createEvent({ kind: NDKKind.Contacts, content: "", tags: [] }); - setOnboarding(true); setIsLoading(false); return navigate("/auth/onboarding", { replace: true }); @@ -213,7 +222,10 @@ export function CreateAccountScreen() { minLength: 1, })} spellCheck={false} - placeholder="satoshi" + autoComplete="off" + autoCorrect="off" + autoCapitalize="off" + placeholder="lume" className="flex-1 min-w-0 text-xl bg-transparent border-transparent outline-none focus:outline-none focus:ring-0 focus:border-none h-14 ring-0 placeholder:text-neutral-600" /> diff --git a/packages/ui/src/navigation.tsx b/packages/ui/src/navigation.tsx index 0bc3dd03..982f0300 100644 --- a/packages/ui/src/navigation.tsx +++ b/packages/ui/src/navigation.tsx @@ -22,7 +22,10 @@ export function Navigation() { useHotkeys("meta+n", () => setIsEditorOpen((state) => !state), []); return ( -
+
diff --git a/packages/ui/src/onboarding/home.tsx b/packages/ui/src/onboarding/home.tsx index a557434d..661024a8 100644 --- a/packages/ui/src/onboarding/home.tsx +++ b/packages/ui/src/onboarding/home.tsx @@ -27,7 +27,7 @@ export function OnboardingHomeScreen() {
+
+
+ {topic.content.map((hashtag) => ( + + ))} +
+
+ ))} +
+
+
+ + +
+
+ + ); +} diff --git a/packages/ui/src/onboarding/modal.tsx b/packages/ui/src/onboarding/modal.tsx index 060c9edf..520ad950 100644 --- a/packages/ui/src/onboarding/modal.tsx +++ b/packages/ui/src/onboarding/modal.tsx @@ -11,7 +11,11 @@ export function OnboardingModal() { -
+
+
diff --git a/packages/ui/src/onboarding/profileSettings.tsx b/packages/ui/src/onboarding/profile.tsx similarity index 79% rename from packages/ui/src/onboarding/profileSettings.tsx rename to packages/ui/src/onboarding/profile.tsx index c3467703..dae2d060 100644 --- a/packages/ui/src/onboarding/profileSettings.tsx +++ b/packages/ui/src/onboarding/profile.tsx @@ -11,7 +11,7 @@ import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { AvatarUploadButton } from "../avatarUploadButton"; -export function OnboardingProfileSettingsScreen() { +export function OnboardingProfileScreen() { const [picture, setPicture] = useState(""); const [loading, setLoading] = useState(false); @@ -32,7 +32,7 @@ export function OnboardingProfileSettingsScreen() { if (!data.name.length && !data.about.length) { setLoading(false); - navigate("/follow"); + navigate("/interests"); } const oldProfile = await ark.getUserProfile(); @@ -41,7 +41,6 @@ export function OnboardingProfileSettingsScreen() { ...data, lud16: "", // temporary remove lud16 nip05: oldProfile?.nip05 || "", - display_name: data.name, bio: data.about, image: picture, picture: picture, @@ -62,7 +61,7 @@ export function OnboardingProfileSettingsScreen() { ); setLoading(false); - navigate("/follow"); + navigate("/interests"); } } catch (e) { setLoading(false); @@ -72,8 +71,13 @@ export function OnboardingProfileSettingsScreen() { return (
-
- Profile Settings +
+
+

About you

+

+ Tell Lume about yourself to start building your home feed. +

+
@@ -122,8 +127,21 @@ export function OnboardingProfileSettingsScreen() {