aboutsummaryrefslogtreecommitdiff
path: root/src/utils/hooks.ts
blob: 3914ef48d8fca8f004ceed69ac9a22e62a9fcfed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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];
};