import { commands } from "@/commands"; import { npub } from "@/commons"; import { Frame } from "@/components/frame"; import { Spinner } from "@/components/spinner"; import { User } from "@/components/user"; import { Plus } from "@phosphor-icons/react"; import { Link, createFileRoute, redirect } from "@tanstack/react-router"; import { useMemo, useState, useTransition } from "react"; export const Route = createFileRoute("/")({ beforeLoad: async () => { const accounts = await commands.getAccounts(); if (!accounts.length) { throw redirect({ to: "/new", replace: true, }); } return { accounts }; }, component: Screen, }); function Screen() { const context = Route.useRouteContext(); const navigate = Route.useNavigate(); const currentDate = useMemo( () => new Date().toLocaleString("default", { weekday: "long", month: "long", day: "numeric", }), [], ); const [value, setValue] = useState(""); const [isPending, startTransition] = useTransition(); const loginWith = async (npub: string) => { setValue(npub); startTransition(async () => { const bunker: string = localStorage.getItem(`${npub}_bunker`); const verifyBunker = bunker?.length && bunker?.startsWith("bunker://"); const res = await commands.login(npub, verifyBunker ? bunker : null); if (res.status === "ok") { navigate({ to: "/$account/chats/new", params: { account: res.data }, replace: true, }); } }); }; return (