@modern-kit/react
Version:
26 lines (23 loc) • 1.54 kB
TypeScript
import { useDebounce } from '../useDebounce/index.js';
import { Dispatch } from 'react';
import '@modern-kit/utils';
type DebounceParameters = Parameters<typeof useDebounce>;
type DebounceReturnType<T extends (...args: any) => any> = ReturnType<typeof useDebounce<T>>;
/**
* @description useState의 디바운스 버전의 훅입니다.
*
* @template T - 상태의 타입을 나타냅니다.
* @param {T} initialState - 초기 상태 값입니다.
* @param {DebounceParameters[1]} wait - 상태 업데이트 전에 기다리는 지연 시간(밀리초)입니다.
* @param {DebounceParameters[2]} options - 디바운스 동작과 관련된 옵션 객체입니다.
* @param {AbortSignal} options.signal - 디바운스된 함수를 취소하기 위한 선택적 AbortSignal입니다.
* @param {number} options.maxWait - 최대 대기 시간(밀리초)입니다.
* @param {boolean} options.leading - 첫 번째 호출을 실행할지 여부입니다.
* @param {boolean} options.trailing - 마지막 호출을 실행할지 여부입니다.
* @returns {[T, DebounceReturnType<Dispatch<React.SetStateAction<T>>>]} - 현재 디바운스된 상태와 상태를 업데이트하는 함수를 포함하는 배열을 반환합니다.
*
* @example
* const [searchTerm, setSearchTerm] = useDebouncedState<string>("", 500);
*/
declare function useDebouncedState<T>(initialState: T, wait: DebounceParameters[1], options?: DebounceParameters[2]): [T, DebounceReturnType<Dispatch<React.SetStateAction<T>>>];
export { useDebouncedState };