UNPKG

@trellixio/roaster-coffee

Version:
62 lines (56 loc) 1.69 kB
'use strict'; var React = require('react'); var react = require('@floating-ui/react'); function _interopNamespaceDefault(e) { var n = Object.create(null); if (e) { for (var k in e) { n[k] = e[k]; } } n.default = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React); function useTooltip(settings) { const [uncontrolledOpened, setUncontrolledOpened] = React__namespace.useState(false); const opened = settings.opened ?? uncontrolledOpened; const setOpen = settings.onOpenChange ?? setUncontrolledOpened; const { x, y, refs, context, placement } = react.useFloating({ placement: settings.position, open: opened, whileElementsMounted: react.autoUpdate, onOpenChange: setOpen, middleware: [ react.offset(settings.offset), react.shift({ padding: 8 }), react.flip({ fallbackAxisSideDirection: "start" }), ...settings.inline ? [react.inline()] : [] ] }); const { getReferenceProps, getFloatingProps } = react.useInteractions([ react.useHover(context, { enabled: settings.events.hover, mouseOnly: !settings.events.touch }), react.useFocus(context, { enabled: settings.events.focus }), react.useRole(context, { role: "tooltip" }), react.useDismiss(context, { enabled: typeof settings.opened === void 0 }) ]); return { x, y, reference: refs.reference, floating: refs.floating, setFloating: refs.setFloating, setReference: refs.setReference, getFloatingProps, getReferenceProps, opened, placement }; } exports.useTooltip = useTooltip; //# sourceMappingURL=useTooltip.js.map