UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 1.67 kB
{"version":3,"file":"use-delayed-hover.cjs","names":[],"sources":["../../../src/utils/Floating/use-delayed-hover.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\ninterface UseDelayedHoverInput {\n open: () => void;\n close: () => void;\n openDelay: number | undefined;\n closeDelay: number | undefined;\n}\n\nexport function useDelayedHover({ open, close, openDelay, closeDelay }: UseDelayedHoverInput) {\n const openTimeout = useRef(-1);\n const closeTimeout = useRef(-1);\n\n const clearTimeouts = () => {\n window.clearTimeout(openTimeout.current);\n window.clearTimeout(closeTimeout.current);\n };\n\n const openDropdown = () => {\n clearTimeouts();\n\n if (openDelay === 0 || openDelay === undefined) {\n open();\n } else {\n openTimeout.current = window.setTimeout(open, openDelay);\n }\n };\n\n const closeDropdown = () => {\n clearTimeouts();\n\n if (closeDelay === 0 || closeDelay === undefined) {\n close();\n } else {\n closeTimeout.current = window.setTimeout(close, closeDelay);\n }\n };\n\n useEffect(() => clearTimeouts, []);\n\n return { openDropdown, closeDropdown };\n}\n"],"mappings":";;;;AASA,SAAgB,gBAAgB,EAAE,MAAM,OAAO,WAAW,cAAoC;CAC5F,MAAM,eAAA,GAAA,MAAA,QAAqB,GAAG;CAC9B,MAAM,gBAAA,GAAA,MAAA,QAAsB,GAAG;CAE/B,MAAM,sBAAsB;AAC1B,SAAO,aAAa,YAAY,QAAQ;AACxC,SAAO,aAAa,aAAa,QAAQ;;CAG3C,MAAM,qBAAqB;AACzB,iBAAe;AAEf,MAAI,cAAc,KAAK,cAAc,KAAA,EACnC,OAAM;MAEN,aAAY,UAAU,OAAO,WAAW,MAAM,UAAU;;CAI5D,MAAM,sBAAsB;AAC1B,iBAAe;AAEf,MAAI,eAAe,KAAK,eAAe,KAAA,EACrC,QAAO;MAEP,cAAa,UAAU,OAAO,WAAW,OAAO,WAAW;;AAI/D,EAAA,GAAA,MAAA,iBAAgB,eAAe,EAAE,CAAC;AAElC,QAAO;EAAE;EAAc;EAAe"}