react-state-hooks
Version:
Collection of hooks to manage state.
42 lines (40 loc) • 2.49 kB
TypeScript
import { DependencyList } from "react";
export function useAsyncState<T>(getter: () => Promise<T>, deps?: DependencyList): readonly [T | undefined, import("react").Dispatch<import("react").SetStateAction<T | undefined>>, {
readonly error: unknown;
readonly isPending: boolean;
readonly revalidate: () => Promise<void>;
}];
export function useDebounceState<T>(initialValue: T, delay?: number): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
export function useDependentState<T>(factory: (current?: T) => T, deps?: DependencyList): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
export function useHistoryState<T>(initialState?: T, length?: number): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>, {
readonly history: T[];
readonly rollback: (amount?: number) => void;
}];
export function useImmutableState<T>(immutableValue?: T | (() => T)): T;
export function useListState<T>(initialState?: T[]): readonly [T[], {
set: (items: T[]) => void;
push: (...items: T[]) => void;
insert: (index: number, item: T) => void;
remove: (indexOrHandler: number | ((item: T, index: number) => boolean)) => void;
update: (indexOrHandler: number | ((item: T, index: number) => boolean), newItem: T) => void;
clear: () => void;
sort: (compareFn?: (a: T, b: T) => number) => void;
filter: (predicate: (value: T, index: number, array: T[]) => boolean) => void;
}];
type NumberStateOptions = {
min?: number;
max?: number;
step?: number;
};
export function useNumberState(initialState?: number, options?: NumberStateOptions): readonly [number | undefined, import("react").Dispatch<import("react").SetStateAction<number | undefined>>, {
readonly inc: (value?: number) => void;
readonly dec: (value?: number) => void;
}];
export function useObjectState<T>(initialState?: T): readonly [T, (value: Partial<T>) => void, (newValue?: T) => void];
export function usePropState<T>(prop: T | undefined, initialState?: T | (() => T)): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
/**
* @reference https://yoavik.com/snippets/use-global-state
*/
export function useStoreState<T>(key: string, initialState?: T | (() => T)): readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
export function useToggleState(initialState?: boolean): [boolean, import("react").DispatchWithoutAction];
//# sourceMappingURL=types.d.ts.map