Files
v10/packages/sandbox/app/utils/use-web-storage.ts
T
2026-03-11 14:02:12 +11:00

18 lines
540 B
TypeScript

import { useState } from 'react';
import {
createWebStorageStore,
type WebStorageSerializableValue,
type WebStorageType,
} from './create-web-storage-store';
import { useExternalStore } from './use-external-store';
export function useWebStorage<T extends WebStorageSerializableValue>(
type: WebStorageType,
key: string,
defaultValue: T
): [T, (value: T) => void] {
const [store] = useState(() => createWebStorageStore<T>(type, key, defaultValue));
const value = useExternalStore(store);
return [value, store.setValue];
}