mirror of
https://github.com/morten-olsen/react-native-debug-console.git
synced 2026-02-08 00:36:26 +01:00
41 lines
812 B
JavaScript
41 lines
812 B
JavaScript
import { useState, useEffect } from 'react';
|
|
|
|
const useStorage = (provider) => {
|
|
const [data, setData] = useState({});
|
|
|
|
const update = async () => {
|
|
const keys = await provider.getAllKeys();
|
|
const values = await Promise.all(keys.map(key => provider.getItem(key)));
|
|
const data = {};
|
|
for (let i = 0; i < keys.length; i++) {
|
|
const key = keys[i];
|
|
const value = values[i];
|
|
data[key] = value;
|
|
}
|
|
setData(data);
|
|
};
|
|
|
|
const removeItem = async (name) => {
|
|
await provider.removeItem(name);
|
|
await update();
|
|
}
|
|
|
|
const clear = async () => {
|
|
await provider.clear();
|
|
await update();
|
|
}
|
|
|
|
useEffect(() => {
|
|
update().catch(err => console.error(err));
|
|
}, []);
|
|
|
|
return {
|
|
data,
|
|
update,
|
|
removeItem,
|
|
clear,
|
|
}
|
|
}
|
|
|
|
export default useStorage;
|