@brutalcomponent/react
Version:
Brutalist React components
43 lines (34 loc) • 1.48 kB
text/typescript
import * as React from 'react';
import { RefObject } from 'react';
interface UseClipboardOptions {
timeout?: number;
onSuccess?: (text: string) => void;
onError?: (error: Error) => void;
}
declare function useClipboard(options?: UseClipboardOptions): {
copy: (text: string) => Promise<boolean>;
copied: boolean;
error: Error | null;
reset: () => void;
};
declare function useClickOutside<T extends HTMLElement = HTMLElement>(handler: () => void, enabled?: boolean): RefObject<T | null>;
declare function useDebounce<T>(value: T, delay?: number): T;
declare function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T | ((val: T) => T)) => void, () => void];
declare function useMediaQuery(query: string): boolean;
declare function useBreakpoint(): {
isMobile: boolean;
isTablet: boolean;
isDesktop: boolean;
isMd: boolean;
isLg: boolean;
isXl: boolean;
};
interface UseKeyPressOptions {
element?: HTMLElement | null;
preventDefault?: boolean;
stopPropagation?: boolean;
enabled?: boolean;
}
declare function useKeyPress(keys: string | string[], handler: (event: KeyboardEvent) => void, options?: UseKeyPressOptions): void;
declare function useFocusTrap(enabled?: boolean): React.RefObject<HTMLDivElement | null>;
export { type UseClipboardOptions, type UseKeyPressOptions, useBreakpoint, useClickOutside, useClipboard, useDebounce, useFocusTrap, useKeyPress, useLocalStorage, useMediaQuery };