From 04572a8e5081b1e4871e273cde9dbaaa44c52fe0 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Wed, 13 Mar 2024 21:43:44 +0000 Subject: structure: Create apps dir and copy tooling dir from t3-turbo repo --- packages/mobile/lib/storage-state.ts | 51 ------------------------------------ 1 file changed, 51 deletions(-) delete mode 100644 packages/mobile/lib/storage-state.ts (limited to 'packages/mobile/lib/storage-state.ts') diff --git a/packages/mobile/lib/storage-state.ts b/packages/mobile/lib/storage-state.ts deleted file mode 100644 index 4988f0e0..00000000 --- a/packages/mobile/lib/storage-state.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as SecureStore from "expo-secure-store"; -import * as React from "react"; - -type UseStateHook = [[boolean, T | null], (value: T | null) => void]; - -function useAsyncState( - initialValue: [boolean, T | null] = [true, null], -): UseStateHook { - return React.useReducer( - ( - state: [boolean, T | null], - action: T | null = null, - ): [boolean, T | null] => [false, action], - initialValue, - ) as UseStateHook; -} - -export async function setStorageItemAsync(key: string, value: string | null) { - if (value == null) { - await SecureStore.deleteItemAsync(key); - } else { - await SecureStore.setItemAsync(key, value); - } -} - -export function useStorageState(key: string): UseStateHook { - // Public - const [state, setState] = useAsyncState(); - - // Get - React.useEffect(() => { - SecureStore.getItemAsync(key).then((value) => { - if (!value) { - setState(null); - return null; - } - setState(JSON.parse(value)); - }); - }, [key]); - - // Set - const setValue = React.useCallback( - (value: T | null) => { - setState(value); - setStorageItemAsync(key, JSON.stringify(value)); - }, - [key], - ); - - return [state, setValue]; -} -- cgit v1.2.3-70-g09d2