diff options
author | Ashm Walia <40498934+ashmgarv@users.noreply.github.com> | 2020-12-04 08:50:24 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-04 11:50:24 -0500 |
commit | 0fd892ad288f2e1eaaa4fdf5e1fd6f15dbd45860 (patch) | |
tree | d7d53d94c6c4026ac9b325508ebce4706d412ac4 /src/utils/hooks.ts | |
parent | f620102190629e0b6f180d3ce056d850b1db5aaa (diff) |
[TMA - 398 AND TMA-430] Replace Providers with Redux Store (#125)
* First
* WIP
* Thunk
* Some more comments
* sc
* recent searches and follounfollow
* Edit profile dummy
* Block / unblock and some cleanup
* Replace auth provider
* Sc
* Delete AP after rebase
* Discover users
* Cleanup
* More cleanup
* Replace profile provider
* Fixed build failure
* Fixed a bug reported
* Prevent app crash when backend server is down
Diffstat (limited to 'src/utils/hooks.ts')
-rw-r--r-- | src/utils/hooks.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/utils/hooks.ts b/src/utils/hooks.ts new file mode 100644 index 00000000..3914ef48 --- /dev/null +++ b/src/utils/hooks.ts @@ -0,0 +1,31 @@ +import AsyncStorage from '@react-native-community/async-storage'; +import {useEffect, useState} from 'react'; + +export const useAsyncStorage = (key: string, defaultValue: string) => { + const [storedValue, setStoredValue] = useState<string>(defaultValue); + + const getStoredItem = async (key: string, defaultValue: string) => { + try { + const item = await AsyncStorage.getItem(key); + const value = item ? item : defaultValue; + setStoredValue(value); + } catch (error) { + console.log(error); + } + }; + + useEffect(() => { + getStoredItem(key, defaultValue); + }, [key, defaultValue]); + + const setValue = async (value: string) => { + try { + setStoredValue(value); + await AsyncStorage.setItem(key, value); + } catch (error) { + console.log(error); + } + }; + + return [storedValue, setValue]; +}; |