{"version":3,"sources":["../../../src/utils/create-effect/deep-compare.ts"],"sourcesContent":["import { useRef } from 'react'\nimport { isDefined } from '../basic'\nimport { deepEqual } from '../equal'\n\nimport type { DependencyList, EffectCallback } from 'react'\nimport type { ExtendedReactEffect } from '../basic'\n\nexport type UseDeepCompareEffect<T> = (callback: EffectCallback, deps?: DependencyList, ...args: T[]) => void\n\nexport function createDeepCompareEffect<T = unknown>(effect: ExtendedReactEffect<T>): UseDeepCompareEffect<T> {\n  return (callback: EffectCallback, deps?: DependencyList, ...args: T[]): void => {\n    const updateTriggerRef = useRef({})\n    const previousDepsRef = useRef(deps)\n\n    if (!isDefined(deps) || !deepEqual(previousDepsRef.current, deps)) {\n      previousDepsRef.current = deps\n      updateTriggerRef.current = {}\n    }\n\n    effect(callback, [updateTriggerRef.current], ...args)\n  }\n}\n"],"names":["createDeepCompareEffect","effect","callback","deps","args","updateTriggerRef","useRef","previousDepsRef","isDefined","deepEqual","current"],"mappings":";;;;+BASgBA;;;eAAAA;;;qBATO;qBACG;qBACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAOnB,SAASA,wBAAqCC,MAA8B;IACjF,OAAO,SAACC,UAA0BC;yCAA0BC;YAAAA;;QAC1D,IAAMC,mBAAmBC,IAAAA,aAAM,EAAC,CAAC;QACjC,IAAMC,kBAAkBD,IAAAA,aAAM,EAACH;QAE/B,IAAI,CAACK,IAAAA,gBAAS,EAACL,SAAS,CAACM,IAAAA,gBAAS,EAACF,gBAAgBG,OAAO,EAAEP,OAAO;YACjEI,gBAAgBG,OAAO,GAAGP;YAC1BE,iBAAiBK,OAAO,GAAG,CAAC;QAC9B;QAEAT,aAAAA,KAAAA,GAAAA;YAAOC;YAAU;gBAACG,iBAAiBK,OAAO;aAAC;SAAU,CAArDT,OAA6C,qBAAGG;IAClD;AACF"}