@won-ui/hooks
Version:
hooks for @won-ui/core
44 lines (38 loc) • 1.49 kB
TypeScript
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 };