{"version":3,"file":"index.cjs","names":[],"sources":["../../../src/hooks/useCounter/index.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface UseCounterReturnType {\n  counter: number;\n  setCounter: React.Dispatch<React.SetStateAction<number>>;\n  increment: () => void;\n  decrement: () => void;\n  reset: () => void;\n}\n/**\n * @description 카운터를 관리하는 커스텀 훅으로, 증가, 감소 및 리셋 기능을 제공합니다.\n *\n * @param {UseCounterProps} props - 카운터 초기화를 위한 속성들.\n * @returns {Object} 카운터 값, 설정 함수 및 제어 함수들을 포함한 객체.\n * @property {number} counter - 현재 카운터 값.\n * @property {React.Dispatch<React.SetStateAction<number>>} setCounter - 카운터 값을 수동으로 설정하는 함수.\n * @property {() => void} increment - 카운터를 1씩 증가시키는 함수\n * @property {() => void} decrement - 카운터를 1씩 감소시키는 함수\n * @property {() => void} reset - 카운터를 초기 값으로 리셋하는 함수.\n *\n * @example\n * const { counter, setCounter, increment, decrement, reset } = useCounter(10);\n *\n * increment(); // counter: 11\n * decrement(); // counter: 10\n * setCounter(20); // counter: 20\n * reset(); // counter: 10\n */\nexport function useCounter(initialValue: number = 0): UseCounterReturnType {\n  const [counter, setCounter] = useState(initialValue);\n\n  const increment = useCallback(() => {\n    setCounter((prev) => prev + 1);\n  }, []);\n\n  const decrement = useCallback(() => {\n    setCounter((prev) => prev - 1);\n  }, []);\n\n  const reset = useCallback(() => {\n    setCounter(initialValue);\n  }, [initialValue]);\n\n  return { counter, setCounter, increment, decrement, reset };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,WAAW,eAAuB,GAAyB;CACzE,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,aAAa;CAcpD,OAAO;EAAE;EAAS;EAAY,YAAA,GAAA,MAAA,mBAZM;GAClC,YAAY,SAAS,OAAO,EAAE;KAC7B,EAAE,CAUkC;EAAE,YAAA,GAAA,MAAA,mBARL;GAClC,YAAY,SAAS,OAAO,EAAE;KAC7B,EAAE,CAM6C;EAAE,QAAA,GAAA,MAAA,mBAJpB;GAC9B,WAAW,aAAa;KACvB,CAAC,aAAa,CAEwC;EAAE"}