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/lib/session.ts | 20 ++++++++++++++++++++ packages/mobile/lib/storage-state.ts | 1 + 2 files changed, 21 insertions(+) create mode 100644 packages/mobile/lib/session.ts (limited to 'packages/mobile/lib') diff --git a/packages/mobile/lib/session.ts b/packages/mobile/lib/session.ts new file mode 100644 index 00000000..e2ab245b --- /dev/null +++ b/packages/mobile/lib/session.ts @@ -0,0 +1,20 @@ +import { useCallback, useMemo } from "react"; + +import useAppSettings from "./settings"; + +export function useSession() { + const { settings, isLoading, setSettings } = useAppSettings(); + const isLoggedIn = useMemo(() => { + return isLoading ? undefined : !!settings.apiKey; + }, [isLoading, settings]); + + const logout = useCallback(() => { + setSettings({ ...settings, apiKey: undefined }); + }, [settings]); + + return { + isLoggedIn, + isLoading, + logout, + }; +} diff --git a/packages/mobile/lib/storage-state.ts b/packages/mobile/lib/storage-state.ts index 09917c79..4988f0e0 100644 --- a/packages/mobile/lib/storage-state.ts +++ b/packages/mobile/lib/storage-state.ts @@ -31,6 +31,7 @@ export function useStorageState(key: string): UseStateHook { React.useEffect(() => { SecureStore.getItemAsync(key).then((value) => { if (!value) { + setState(null); return null; } setState(JSON.parse(value)); -- cgit v1.2.3-70-g09d2