import { commands } from "@/commands.gen"; import { Frame, GoBack, Spinner } from "@/components"; import { createLazyFileRoute } from "@tanstack/react-router"; import { readText } from "@tauri-apps/plugin-clipboard-manager"; import { message } from "@tauri-apps/plugin-dialog"; import { useState, useTransition } from "react"; export const Route = createLazyFileRoute("/auth/connect")({ component: Screen, }); function Screen() { const navigate = Route.useNavigate(); const [uri, setUri] = useState(""); const [isPending, startTransition] = useTransition(); const pasteFromClipboard = async () => { const val = await readText(); setUri(val); }; const submit = () => { startTransition(async () => { if (!uri.startsWith("bunker://")) { await message( "You need to enter a valid Connect URI starts with bunker://", { title: "Nostr Connect", kind: "info" }, ); return; } const res = await commands.connectAccount(uri); if (res.status === "ok") { navigate({ to: "/", replace: true }); } else { await message(res.error, { title: "Nostr Connect", kind: "error" }); return; } }); }; return (

Continue with Nostr Connect

setUri(e.target.value)} className="pl-3 pr-12 rounded-lg w-full h-10 bg-transparent border border-neutral-200 dark:border-neutral-700 focus:border-blue-500 focus:outline-none placeholder:text-neutral-400" />
{isPending ? (

Waiting confirmation...

) : ( Go back to previous screen )}
); }