import { createFileRoute, Outlet, redirect, useMatches, } from "@tanstack/react-router" import { useState } from "react" import { useTranslation } from "react-i18next" import { Button } from "@/components/ui/button" import { Toaster } from "@/components/ui/sonner" import { BottomTabBar } from "@/components/bottom-tab-bar" import { ReviewSheet } from "@/components/review-sheet" import { getAuth } from "@/lib/auth" import { usePendingFollowerCount } from "@/features/social" export const Route = createFileRoute("/_app")({ beforeLoad: () => { if (!getAuth()) throw redirect({ to: "/login" }) }, component: AppLayout, errorComponent: ErrorFallback, }) function ErrorFallback({ error, reset }: { error: unknown; reset: () => void }) { const { t } = useTranslation() return (

{t("errors.somethingWrong")}

{error instanceof Error ? error.message : t("errors.unknownError")}

) } function AppLayout() { const [logOpen, setLogOpen] = useState(false) const matches = useMatches() const routeKey = matches.at(-1)?.id ?? "" const { data: pending } = usePendingFollowerCount() const pendingCount = pending?.count ?? 0 return (
setLogOpen(true)} pendingCount={pendingCount} />
) }