import { PlusIcon } from "@lume/icons"; import { Spinner } from "@lume/ui"; import { User } from "@/components/user"; import { checkForAppUpdates } from "@lume/utils"; import { Link } from "@tanstack/react-router"; import { createFileRoute, redirect } from "@tanstack/react-router"; import { useState } from "react"; import { toast } from "sonner"; import { NostrAccount } from "@lume/system"; export const Route = createFileRoute("/")({ beforeLoad: async () => { await checkForAppUpdates(true); // check for app updates const accounts = await NostrAccount.getAccounts(); if (accounts.length < 1) { throw redirect({ to: "/landing", replace: true, }); } return { accounts }; }, component: Screen, }); function Screen() { const navigate = Route.useNavigate(); const context = Route.useRouteContext(); const [loading, setLoading] = useState(false); const select = async (npub: string) => { try { setLoading(true); const status = await NostrAccount.loadAccount(npub); if (status) { return navigate({ to: "/$account/home", params: { account: npub }, search: { accounts: context.accounts, }, replace: true, }); } } catch (e) { setLoading(false); toast.error(String(e)); } }; const currentDate = new Date().toLocaleString("default", { weekday: "long", month: "long", day: "numeric", }); return (

{currentDate}

Welcome back!

{loading ? (
) : ( <> {context.accounts.map((account) => ( ))}

Add

)}
); }