aboutsummaryrefslogtreecommitdiff
path: root/src/utils/hooks.ts
diff options
context:
space:
mode:
authorAshm Walia <40498934+ashmgarv@users.noreply.github.com>2020-12-04 08:50:24 -0800
committerGitHub <noreply@github.com>2020-12-04 11:50:24 -0500
commit0fd892ad288f2e1eaaa4fdf5e1fd6f15dbd45860 (patch)
treed7d53d94c6c4026ac9b325508ebce4706d412ac4 /src/utils/hooks.ts
parentf620102190629e0b6f180d3ce056d850b1db5aaa (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.ts31
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];
+};