Files
musicland/src/hooks/useAsyncStorage.js
T
Philip Cesar Garay 84fc719a10 update
2025-07-31 21:25:33 +08:00

33 lines
998 B
JavaScript

import { useEffect, useState } from "react";
import AsyncStorage from "@react-native-async-storage/async-storage";
const useAsyncStorage = (key, initialValue) => {
const [data, setData] = useState(initialValue);
const [retrievedFromStorage, setRetrievedFromStorage] = useState(false);
useEffect(() => {
(async () => {
try {
const value = await AsyncStorage.getItem(key);
console.log(`Retrieved data for ${key}: ${value}`);
setData(JSON.parse(value) || initialValue);
setRetrievedFromStorage(true);
} catch (error) {
console.error("useAsyncStorage getItem error:", error);
}
})();
}, [key, initialValue]);
const setNewData = async (value) => {
try {
await AsyncStorage.setItem(key, JSON.stringify(value));
setData(value);
} catch (error) {
console.error("useAsyncStorage setItem error:", error);
}
};
return [data, setNewData, retrievedFromStorage];
};
export default useAsyncStorage;