diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-11 14:36:04 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-11 14:36:47 +0000 |
| commit | e1c511c7c27034f94b8598b44467782af346b9c1 (patch) | |
| tree | 3b75e0277e3c795d6f03a60007363e54ad73e2ac /packages/mobile/lib | |
| parent | b3f081b300125cfe43af38001fee392083a4b880 (diff) | |
| download | karakeep-e1c511c7c27034f94b8598b44467782af346b9c1.tar.zst | |
mobile: Do the session routing in the homescreen
Diffstat (limited to 'packages/mobile/lib')
| -rw-r--r-- | packages/mobile/lib/session.ts | 20 | ||||
| -rw-r--r-- | packages/mobile/lib/storage-state.ts | 1 |
2 files changed, 21 insertions, 0 deletions
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<T>(key: string): UseStateHook<T> { React.useEffect(() => { SecureStore.getItemAsync(key).then((value) => { if (!value) { + setState(null); return null; } setState(JSON.parse(value)); |
