UNPKG

mt-flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS

24 lines (23 loc) 927 B
import { autoUpdate, safePolygon, useClick, useDismiss, useFloating, useHover, useInteractions, useRole, } from '@floating-ui/react'; import { getMiddleware, getPlacement } from './floating'; export const useBaseFLoating = ({ open, arrowRef, placement = 'top', setOpen, }) => { return useFloating({ placement: getPlacement({ placement }), open, onOpenChange: setOpen, whileElementsMounted: autoUpdate, middleware: getMiddleware({ placement, arrowRef }), }); }; export const useFloatingInteractions = ({ context, trigger, role = 'tooltip', interactions = [], }) => { return useInteractions([ useClick(context, { enabled: trigger === 'click' }), useHover(context, { enabled: trigger === 'hover', handleClose: safePolygon(), }), useDismiss(context), useRole(context, { role }), ...interactions, ]); };