{"version":3,"file":"use-did-update.cjs","names":["useRef"],"sources":["../../src/use-did-update/use-did-update.ts"],"sourcesContent":["import { DependencyList, EffectCallback, useEffect, useRef } from 'react';\n\nfunction dependenciesChanged(previous: DependencyList, next: DependencyList) {\n  return (\n    previous.length !== next.length || next.some((dep, index) => !Object.is(dep, previous[index]))\n  );\n}\n\nexport function useDidUpdate(fn: EffectCallback, dependencies?: DependencyList) {\n  const mounted = useRef(false);\n  const previousRender = useRef<object>(null);\n  const previousDependencies = useRef<DependencyList | undefined>(undefined);\n  const render = {};\n\n  useEffect(() => {\n    const isSameRender = previousRender.current === render;\n    const previous = previousDependencies.current;\n\n    previousRender.current = render;\n    previousDependencies.current = dependencies;\n\n    if (!mounted.current) {\n      mounted.current = true;\n      return undefined;\n    }\n\n    if (isSameRender) {\n      return undefined;\n    }\n\n    if (dependencies && previous && !dependenciesChanged(previous, dependencies)) {\n      return undefined;\n    }\n\n    return fn();\n  }, dependencies);\n}\n"],"mappings":";;;AAEA,SAAS,oBAAoB,UAA0B,MAAsB;CAC3E,OACE,SAAS,WAAW,KAAK,UAAU,KAAK,MAAM,KAAK,UAAU,CAAC,OAAO,GAAG,KAAK,SAAS,MAAM,CAAC;AAEjG;AAEA,SAAgB,aAAa,IAAoB,cAA+B;CAC9E,MAAM,WAAA,GAAUA,MAAAA,OAAAA,CAAO,KAAK;CAC5B,MAAM,kBAAA,GAAiBA,MAAAA,OAAAA,CAAe,IAAI;CAC1C,MAAM,wBAAA,GAAuBA,MAAAA,OAAAA,CAAmC,KAAA,CAAS;CACzE,MAAM,SAAS,CAAC;CAEhB,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,MAAM,eAAe,eAAe,YAAY;EAChD,MAAM,WAAW,qBAAqB;EAEtC,eAAe,UAAU;EACzB,qBAAqB,UAAU;EAE/B,IAAI,CAAC,QAAQ,SAAS;GACpB,QAAQ,UAAU;GAClB;EACF;EAEA,IAAI,cACF;EAGF,IAAI,gBAAgB,YAAY,CAAC,oBAAoB,UAAU,YAAY,GACzE;EAGF,OAAO,GAAG;CACZ,GAAG,YAAY;AACjB"}