{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/hooks/useDeepCompareEffect/index.ts"],"sourcesContent":["import { useConditionalEffect } from '../useConditionalEffect';\nimport { isEqual } from '@modern-kit/utils';\nimport { type DependencyList, type EffectCallback } from 'react';\n\n/**\n * @description 의존성 배열을 깊은 비교(deep comparison)를 통해 판단하여 effect를 실행하는 커스텀 훅입니다.\n *\n * ⚠️ 깊은 비교를 수행하기 때문에 성능 이슈가 발생할 수 있어 사용 시 주의가 필요합니다.\n *\n * @param {EffectCallback} effectCallback - 실행할 effectCallback 함수\n * @param {DependencyList} deps - 의존성 배열\n *\n * @example\n * useDeepCompareEffect(() => {\n *   console.log('obj가 변경되었습니다.');\n * }, [obj]);\n */\nexport function useDeepCompareEffect(\n  effectCallback: EffectCallback,\n  deps: DependencyList\n) {\n  useConditionalEffect(effectCallback, deps, (prevDeps, currentDeps) => {\n    if (prevDeps === undefined) {\n      return true;\n    }\n\n    return !isEqual(prevDeps, currentDeps);\n  });\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,SAAgB,qBACd,gBACA,MACA;CACA,qBAAqB,gBAAgB,OAAO,UAAU,gBAAgB;EACpE,IAAI,aAAa,KAAA,GACf,OAAO;EAGT,OAAO,CAAC,QAAQ,UAAU,YAAY;GACtC"}