From e1c511c7c27034f94b8598b44467782af346b9c1 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Mon, 11 Mar 2024 14:36:04 +0000 Subject: mobile: Do the session routing in the homescreen --- packages/mobile/app/dashboard.tsx | 23 +++++++++++++---------- packages/mobile/app/index.tsx | 23 ++++++++++++++++------- packages/mobile/lib/session.ts | 20 ++++++++++++++++++++ packages/mobile/lib/storage-state.ts | 1 + 4 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 packages/mobile/lib/session.ts (limited to 'packages') diff --git a/packages/mobile/app/dashboard.tsx b/packages/mobile/app/dashboard.tsx index 8be57615..b4f535c5 100644 --- a/packages/mobile/app/dashboard.tsx +++ b/packages/mobile/app/dashboard.tsx @@ -4,24 +4,27 @@ import { Text, View } from "react-native"; import Logo from "@/components/Logo"; import { Button } from "@/components/ui/Button"; -import useAppSettings from "@/lib/settings"; +import { useSession } from "@/lib/session"; import { api } from "@/lib/trpc"; -export default function Main() { +export default function Dashboard() { const router = useRouter(); - const { settings, setSettings, isLoading } = useAppSettings(); + + const { isLoggedIn, logout } = useSession(); useEffect(() => { - if (!isLoading && !settings.apiKey) { + if (isLoggedIn !== undefined && !isLoggedIn) { router.replace("signin"); } - }, [settings, isLoading]); + }, [isLoggedIn]); - const onLogout = () => { - setSettings({ ...settings, apiKey: undefined }); - }; + const { data, error, isLoading } = api.users.whoami.useQuery(); - const { data } = api.users.whoami.useQuery(); + useEffect(() => { + if (error?.data?.code === "UNAUTHORIZED") { + logout(); + } + }, [error]); return ( @@ -29,7 +32,7 @@ export default function Main() { Logged in as: {isLoading ? "Loading ..." : data?.email} -