@lesnoypudge/utils-react
Version:
lesnoypudge's utils-react
18 lines (17 loc) • 868 B
TypeScript
import { T } from '@lesnoypudge/types-utils-base/namespace';
import { Dispatch, SetStateAction } from 'react';
export declare namespace createLocalStorageHook {
namespace useLocalStorage {
type SetValue<_Value> = Dispatch<SetStateAction<_Value>>;
type ReturnObject<_Value> = {
value: _Value;
setValue: SetValue<_Value>;
clear: VoidFunction;
remove: VoidFunction;
};
type Return<_Key extends string, _Value> = {
[x in _Key]: ReturnObject<_Value>;
};
}
}
export declare const createLocalStorageHook: <_Schema extends Record<string, unknown>>() => <_Key extends T.StringKeyOf<_Schema>, _DefaultValue extends _Schema[_Key] | undefined>(key: _Key, defaultValue?: _DefaultValue) => createLocalStorageHook.useLocalStorage.Return<_Key, _Schema[_Key] | _DefaultValue>;