mirror of
https://github.com/morten-olsen/react-native-debug-console.git
synced 2026-02-08 00:36:26 +01:00
moved
This commit is contained in:
40
packages/lib/src/components/data/Storage.js
Normal file
40
packages/lib/src/components/data/Storage.js
Normal file
@@ -0,0 +1,40 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user