"use client"; import { Download, LogOut, MessageCircleQuestion } from "lucide-react"; import { signOut } from "next-auth/react"; import { BackButton } from "@/app/_components"; import { MobileShell } from "@/app/_components/core"; import { resolveGlobalRouteContext, type GlobalReturnToValue, } from "@/router/global-route-context"; import { useGlobalAppNavigator } from "@/router/use-global-app-navigator"; import { useAuthDispatch, useAuthState } from "@/stores/auth/auth-context"; import { useUserDispatch, useUserState } from "@/stores/user/user-context"; import { SidebarWalletCard, UserHeader } from "./components"; import { getSidebarViewModel } from "./sidebar-view-model"; import { usePwaInstallEntry } from "./use-pwa-install-entry"; import { useSidebarUserBootstrap } from "./use-sidebar-user-bootstrap"; import styles from "./components/sidebar-screen.module.css"; export interface SidebarScreenProps { returnTo?: GlobalReturnToValue; } export function SidebarScreen({ returnTo }: SidebarScreenProps) { const navigator = useGlobalAppNavigator(); const navigation = resolveGlobalRouteContext(returnTo); const user = useUserState(); const userDispatch = useUserDispatch(); const auth = useAuthState(); const authDispatch = useAuthDispatch(); const pwaInstallEntry = usePwaInstallEntry(); useSidebarUserBootstrap({ auth, userDispatch }); const handleLogoutClick = () => { userDispatch({ type: "UserClearLocal" }); authDispatch({ type: "AuthLogoutSubmitted" }); void signOut({ redirect: false }); navigator.replace(navigation.splashUrl, { scroll: false }); }; const view = getSidebarViewModel({ loginStatus: auth.loginStatus, user, }); return (