@nature-ui/clickable
Version:
React hook and component that implements native button interactions
56 lines (53 loc) • 2.3 kB
TypeScript
import * as _nature_ui_utils_dist_types from '@nature-ui/utils/dist/types';
import React from 'react';
interface DOMAttrs {
onMouseDown?: React.MouseEventHandler;
onMouseUp?: React.MouseEventHandler;
onMouseOver?: React.MouseEventHandler;
onMouseEnter?: React.MouseEventHandler;
onMouseMove?: React.MouseEventHandler;
onMouseLeave?: React.MouseEventHandler;
onClick?: React.MouseEventHandler;
ref?: React.Ref<any>;
onKeyDown?: React.KeyboardEventHandler;
onKeyUp?: React.KeyboardEventHandler;
tabIndex?: number;
}
interface UseClickableProps extends DOMAttrs {
isDisabled?: boolean;
isFocusable?: boolean;
clickOnEnter?: boolean;
clickOnSpace?: boolean;
}
declare const useClickable: (props?: UseClickableProps) => {
ref: (value: any) => void;
type: "button" | "submit" | "reset" | undefined;
'aria-disabled': boolean | undefined;
disabled: boolean | undefined;
onClick: (event: React.MouseEvent) => void;
onMouseDown: React.MouseEventHandler<Element> | undefined;
onMouseUp: React.MouseEventHandler<Element> | undefined;
onKeyUp: React.KeyboardEventHandler<Element> | undefined;
onKeyDown: React.KeyboardEventHandler<Element> | undefined;
onMouseOver: React.MouseEventHandler<Element> | undefined;
onMouseEnter?: React.MouseEventHandler<Element> | undefined;
onMouseMove?: React.MouseEventHandler<Element> | undefined;
onMouseLeave?: React.MouseEventHandler<Element> | undefined;
} | {
ref: (value: any) => void;
role: string;
'data-active': _nature_ui_utils_dist_types.Booleanish;
'aria-disabled': boolean;
tabIndex: number | undefined;
onClick: (event: React.MouseEvent) => void;
onMouseDown: (event: React.MouseEvent) => void;
onMouseUp: (event: React.MouseEvent) => void;
onKeyUp: (event: React.KeyboardEvent) => void;
onKeyDown: (event: React.KeyboardEvent) => void;
onMouseOver: (event: React.MouseEvent) => void;
onMouseEnter?: React.MouseEventHandler<Element> | undefined;
onMouseMove?: React.MouseEventHandler<Element> | undefined;
onMouseLeave?: React.MouseEventHandler<Element> | undefined;
};
type UseClickableReturn = ReturnType<typeof useClickable>;
export { UseClickableProps, UseClickableReturn, useClickable };