rooks
Version:
Essential React custom hooks ⚓ to super charge your components!
41 lines • 1.51 kB
TypeScript
declare type Push<T> = (...args: Parameters<Array<T>["push"]>) => void;
declare type Pop = () => void;
declare type Unshift<T> = (...args: Parameters<Array<T>["unshift"]>) => void;
declare type Shift = () => void;
declare type Reverse = () => void;
declare type Concat<T> = (value: T[]) => void;
declare type Fill<T> = (value: T, start?: number, end?: number) => void;
declare type Clear = () => void;
export declare type UseArrayStateControls<T> = {
push: Push<T>;
pop: Pop;
clear: Clear;
unshift: Unshift<T>;
shift: Shift;
reverse: Reverse;
concat: Concat<T>;
fill: Fill<T>;
};
export declare type UseArrayStateReturnValue<T> = [T[], UseArrayStateControls<T>];
/**
* useArrayState
* @description Array state manager hook for React
* @param {Array<T>} initialState Initial state of the array
* @returns {UseArrayStateReturnValue<T>} Array state manager hook for React
* @see {@link https://react-hooks.org/docs/useArrayState}
*
* @example
*
* const [array, controls] = useArrayState([1, 2, 3]);
*
* controls.push(4); // [1, 2, 3, 4]
* controls.pop(); // [1, 2, 3]
* controls.unshift(0); // [0, 1, 2, 3]
* controls.shift(); // [1, 2, 3]
* controls.reverse(); // [3, 2, 1]
* controls.concat([4, 5, 6]); // [3, 2, 1, 4, 5, 6]
* controls.fill(0); // [0, 0, 0, 0, 0, 0]
*/
declare function useArrayState<T>(initialArray?: T[]): UseArrayStateReturnValue<T>;
export { useArrayState };
//# sourceMappingURL=useArrayState.d.ts.map