{"version":3,"file":"useDebouncedCallback.js","names":["c","_c","useCallback","useRef","useDebouncedCallback","func","wait","$","timeout","undefined","t0","t1","args","later","clearTimeout","current","setTimeout"],"sources":["../../src/hooks/useDebouncedCallback.ts"],"sourcesContent":["'use client'\nimport { useCallback, useRef } from 'react'\n\n/**\n * Returns a memoized function that will only call the passed function when it hasn't been called for the wait period\n * @param func The function to be called\n * @param wait Wait period after function hasn't been called for\n * @returns A memoized function that is debounced\n */\nexport const useDebouncedCallback = (func, wait) => {\n // Use a ref to store the timeout between renders\n // and prevent changes to it from causing re-renders\n const timeout = useRef>(undefined)\n\n return useCallback(\n (...args: TFunctionArgs[]) => {\n const later = () => {\n clearTimeout(timeout.current)\n func(...args)\n }\n\n clearTimeout(timeout.current)\n timeout.current = setTimeout(later, wait)\n },\n [func, wait],\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,WAAW,EAAEC,MAAM,QAAQ;AAEpC;;;;;;AAMA,OAAO,MAAMC,oBAAA,GAAuBA,CAAAC,IAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAGlC,MAAAO,OAAA,GAAgBL,MAAA,CAAAM,SAAsC;EAAA,IAAAC,EAAA;EAAA,IAAAH,CAAA,QAAAF,IAAA,IAAAE,CAAA,QAAAD,IAAA;IAGpDI,EAAA,GAAAA,CAAA,GAAAC,EAAA;MAAC,MAAAC,IAAA,GAAAD,EAAG;MACF,MAAAE,KAAA,GAAAA,CAAA;QACEC,YAAA,CAAaN,OAAA,CAAAO,OAAe;QAC5BV,IAAA,IAAQO,IAAA;MAAA;MAGVE,YAAA,CAAaN,OAAA,CAAAO,OAAe;MAC5BP,OAAA,CAAAO,OAAA,GAAkBC,UAAA,CAAWH,KAAA,EAAOP,IAAA;IAAA;IACtCC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OATKG,EAUO;AAAA,CAEhB","ignoreList":[]}