{"version":3,"file":"use-resizing.mjs","sources":["../../../../src/components/AppShell/use-resizing/use-resizing.tsx"],"sourcesContent":["import { startTransition, useRef, useState } from 'react';\nimport { useIsomorphicEffect, useWindowEvent } from '@raikou/hooks';\n\ninterface UseResizingInput {\n  transitionDuration: number | undefined;\n  disabled: boolean | undefined;\n}\n\nexport function useResizing({ transitionDuration, disabled }: UseResizingInput) {\n  const [resizing, setResizing] = useState(true);\n  const resizingTimeout = useRef<number>();\n  const disabledTimeout = useRef<number>();\n\n  useWindowEvent('resize', () => {\n    setResizing(true);\n    clearTimeout(resizingTimeout.current);\n    resizingTimeout.current = window.setTimeout(\n      () =>\n        startTransition(() => {\n          setResizing(false);\n        }),\n      200\n    );\n  });\n\n  useIsomorphicEffect(() => {\n    setResizing(true);\n    clearTimeout(disabledTimeout.current);\n    disabledTimeout.current = window.setTimeout(\n      () =>\n        startTransition(() => {\n          setResizing(false);\n        }),\n      transitionDuration || 0\n    );\n  }, [disabled, transitionDuration]);\n\n  return resizing;\n}\n"],"names":[],"mappings":";;;AAQO,SAAS,WAAY,CAAA,EAAE,kBAAoB,EAAA,QAAA,EAA8B,EAAA;AAC9E,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,IAAI,CAAA;AAC7C,EAAA,MAAM,kBAAkB,MAAe,EAAA;AACvC,EAAA,MAAM,kBAAkB,MAAe,EAAA;AAEvC,EAAA,cAAA,CAAe,UAAU,MAAM;AAC7B,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AACpC,IAAA,eAAA,CAAgB,UAAU,MAAO,CAAA,UAAA;AAAA,MAC/B,MACE,gBAAgB,MAAM;AACpB,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,OAClB,CAAA;AAAA,MACH;AAAA,KACF;AAAA,GACD,CAAA;AAED,EAAA,mBAAA,CAAoB,MAAM;AACxB,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AACpC,IAAA,eAAA,CAAgB,UAAU,MAAO,CAAA,UAAA;AAAA,MAC/B,MACE,gBAAgB,MAAM;AACpB,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,OAClB,CAAA;AAAA,MACH,kBAAsB,IAAA;AAAA,KACxB;AAAA,GACC,EAAA,CAAC,QAAU,EAAA,kBAAkB,CAAC,CAAA;AAEjC,EAAO,OAAA,QAAA;AACT;;;;"}