{"version":3,"sources":["../../src/use-pausable-update-deep-compare-effect/index.ts"],"sourcesContent":["import { useCreation } from '../use-creation'\nimport { useGetterRef } from '../use-getter-ref'\nimport { useRender } from '../use-render'\nimport { useSafeState } from '../use-safe-state'\nimport { useStableFn } from '../use-stable-fn'\nimport { useUpdateDeepCompareEffect } from '../use-update-deep-compare-effect'\nimport { useUpdateEffect } from '../use-update-effect'\n\nimport type { DependencyList, EffectCallback } from 'react'\nimport type { Pausable } from '../use-pausable'\n\nexport function usePausableUpdateDeepCompareEffect(\n  callback: EffectCallback,\n  deps: DependencyList = [],\n): Pausable<[boolean?], [boolean?]> {\n  const render = useRender()\n\n  const [isActiveRef, isActive] = useGetterRef(true)\n  const [trigger, updateTrigger] = useSafeState({})\n\n  const pause = useStableFn((update?: boolean, triggerEffect?: boolean) => {\n    isActiveRef.current = false\n    update && render()\n    triggerEffect && updateTrigger({})\n  })\n\n  const resume = useStableFn((update?: boolean, triggerEffect?: boolean) => {\n    isActiveRef.current = true\n    update && render()\n    triggerEffect && updateTrigger({})\n  })\n\n  // biome-ignore lint/correctness/useExhaustiveDependencies: for trigger\n  useUpdateDeepCompareEffect(() => {\n    if (isActiveRef.current) {\n      updateTrigger({})\n    }\n  }, deps)\n\n  // biome-ignore lint/correctness/useExhaustiveDependencies: effect need to re-run when trigger changes\n  useUpdateEffect(callback, [trigger])\n\n  return useCreation(() => ({ isActive, pause, resume }))\n}\n"],"names":["usePausableUpdateDeepCompareEffect","callback","deps","render","useRender","useGetterRef","isActiveRef","isActive","useSafeState","trigger","updateTrigger","pause","useStableFn","update","triggerEffect","current","resume","useUpdateDeepCompareEffect","useUpdateEffect","useCreation"],"mappings":";;;;+BAWgBA;;;eAAAA;;;2BAXY;4BACC;yBACH;4BACG;2BACD;0CACe;+BACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKzB,SAASA,mCACdC,QAAwB;QACxBC,OAAAA,iEAAuB,EAAE;IAEzB,IAAMC,SAASC,IAAAA,oBAAS;IAExB,IAAgCC,iCAAAA,IAAAA,0BAAY,EAAC,WAAtCC,cAAyBD,kBAAZE,WAAYF;IAChC,IAAiCG,iCAAAA,IAAAA,0BAAY,EAAC,CAAC,QAAxCC,UAA0BD,kBAAjBE,gBAAiBF;IAEjC,IAAMG,QAAQC,IAAAA,wBAAW,EAAC,SAACC,QAAkBC;QAC3CR,YAAYS,OAAO,GAAG;QACtBF,UAAUV;QACVW,iBAAiBJ,cAAc,CAAC;IAClC;IAEA,IAAMM,SAASJ,IAAAA,wBAAW,EAAC,SAACC,QAAkBC;QAC5CR,YAAYS,OAAO,GAAG;QACtBF,UAAUV;QACVW,iBAAiBJ,cAAc,CAAC;IAClC;IAEA,uEAAuE;IACvEO,IAAAA,sDAA0B,EAAC;QACzB,IAAIX,YAAYS,OAAO,EAAE;YACvBL,cAAc,CAAC;QACjB;IACF,GAAGR;IAEH,sGAAsG;IACtGgB,IAAAA,gCAAe,EAACjB,UAAU;QAACQ;KAAQ;IAEnC,OAAOU,IAAAA,wBAAW,EAAC;eAAO;YAAEZ,UAAAA;YAAUI,OAAAA;YAAOK,QAAAA;QAAO;;AACtD"}