import { useAppSession } from "$/contexts/app-session"; import type { AccountSummary, ActiveSession } from "$/lib/types"; import { createMemo, Show } from "solid-js"; import { Presence } from "solid-motionone"; import { AvatarBadge } from "./AvatarBadge"; import { ProfileSkeleton } from "./ProfileSkeleton"; import { ReauthBanner } from "./ReauthBanner"; export function SessionEmptyState() { return (

No account connected yet.

Connect your Bluesky account to start exploring.

); } function SessionExpiredState(props: { account: AccountSummary }) { return (

{props.account.handle || props.account.did}

Stored account

PDS: {props.account.pdsUrl || "PDS unavailable"}

); } function SessionProfile(props: { session: ActiveSession; activeAccount: AccountSummary | null }) { return (

{props.session.handle}

{props.session.did}

{(account) =>

{account().pdsUrl || "PDS unavailable"}

}
); } export function SessionSpotlight() { const session = useAppSession(); const displayAccount = createMemo(() => session.activeAccount ?? (session.reauthNeeded ? session.primaryAccount : null) ); const label = createMemo(() => { if (session.bootstrapping) { return "Reconnecting"; } if (session.activeSession) { return "Connected"; } if (session.reauthNeeded && displayAccount()) { return "Expired"; } return "Ready"; }); return (

Your account

{label()}

void session.reauthorizePrimaryAccount()} />
); } function SessionBody( props: { activeSession: ActiveSession | null; activeAccount: AccountSummary | null; bootstrapping: boolean; reauthNeeded: boolean; }, ) { return ( }> }> {(account) => } }> {(currentSession) => } ); }