Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 68 additions & 8 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,21 +127,34 @@ declare module "@uidotdev/usehooks" {
(value: string) => Promise<void>
];

export function useContinuousRetry(
callback: () => any,
interval?: number,
options?: {
maxRetries?: number
}): boolean;

export function useCountdown(endTime: number, options: {
interval: number,
onComplete: () => any,
onTick: () => any
}): number;

export function useCounter(
startingValue?: number,
options?: {
min?: number;
max?: number;
}
): [
number,
{
increment: () => void;
decrement: () => void;
set: (nextCount: number) => void;
reset: () => void;
}
];
number,
{
increment: () => void;
decrement: () => void;
set: (nextCount: number) => void;
reset: () => void;
}
];

export function useDebounce<T>(value: T, delay: number): T;

Expand All @@ -152,8 +165,25 @@ declare module "@uidotdev/usehooks" {

export function useDocumentTitle(title: string): void;

export function useEventListener(
target: React.MutableRefObject<Element> | Element,
eventName: string,
handler: (Event) => any,
options?: {
capture?: boolean,
passive?: boolean,
once?: boolean
}): void;

export function useFavicon(url: string): void;

export function useFetch(
url: string,
options?: {}): {
error: Error | undefined,
data: any | undefined
}

export function useGeolocation(options?: PositionOptions): GeolocationState;

export function useHistoryState<T>(initialPresent?: T): HistoryState<T>;
Expand All @@ -169,14 +199,35 @@ declare module "@uidotdev/usehooks" {
options?: IntersectionObserverInit
): [React.MutableRefObject<Element>, IntersectionObserverEntry | null];

export function useInterval(cb: () => any, ms: number): () => void;

export function useIntervalWhen(
cb: () => any,
options: {
ms: number,
when: boolean,
startImmediately?: boolean
}): () => void;

export function useIsClient(): boolean;

export function useIsFirstRender(): boolean;

export function useKeyPress(
key: string,
cb: (Event) => any,
options?: {
event?: string,
target?: Element | Window,
eventOptions?: {}
}): void;

export function useList<T>(defaultList?: T[]): [T[], CustomList<T>];

export function useLockBodyScroll(): void;

export function useLogger(name: string, ...rest: any[]): void;

export function useLongPress(
callback: (e: Event) => void,
options?: LongPressOptions
Expand Down Expand Up @@ -208,12 +259,19 @@ declare module "@uidotdev/usehooks" {
type: string;
};

export function usePageLeave(cb: () => any): void;

export function usePreferredLanguage(): string;

export function usePrevious<T>(newValue: T): T;

export function useQueue<T>(initialValue?: T[]): CustomQueue<T>;

export function useRandomInterval(cb: () => any, options: {
minDelay: number,
maxDelay: number
}): () => void;

export function useRenderCount(): number;

export function useRenderInfo(name?: string): RenderInfo | undefined;
Expand All @@ -231,6 +289,8 @@ declare module "@uidotdev/usehooks" {

export function useThrottle<T>(value: T, delay: number): T;

export function useTimeout(cb: () => any, ms: number): () => void;

export function useToggle(
initialValue?: boolean
): [boolean, (newValue?: boolean) => void];
Expand Down