UNPKG

@won-ui/hooks

Version:
44 lines (38 loc) 1.49 kB
import { RefObject, MouseEvent, ChangeEvent } from 'react'; declare function useClickOutside<T extends HTMLElement>(ref: RefObject<T>, eventHandler: (e: Event) => void, eventKeys?: string[]): void; interface UsePaginationProps { defaultPage?: number; currentPage?: number; onChange?: (page: number, pageSize: number) => void; defaultPageSize?: number; pageSizeOptions?: number[]; pagesGap?: number; total: number; hasMoreButton?: boolean; } interface PageInfo { page: number | 'left' | 'right'; selected: boolean; } /** * @required * @param total * @optional * @param defaultPage * @param currentPage */ declare function usePagination({ defaultPage, currentPage: propsCurrentPage, onChange, pageSizeOptions, defaultPageSize, pagesGap, total, hasMoreButton, }: UsePaginationProps): { page: number; maxPageNum: number; additionalPages: number; currentPages: PageInfo[]; pageSize: number; pageSizeOptions: number[]; handleChangePage: (clickedPage: number) => (e: MouseEvent<HTMLSpanElement>) => void; handleChangePageSize: (e: ChangeEvent<HTMLSelectElement>) => void; handleClickNext: (e: MouseEvent<HTMLButtonElement>) => void; handleClickPrev: (e: MouseEvent<HTMLButtonElement>) => void; handleClickMoreButton: (position: 'left' | 'right') => (e: MouseEvent<HTMLButtonElement>) => void; }; declare const useUniqueId: (id?: string) => string; export { useClickOutside, usePagination, useUniqueId };