@modern-kit/react
Version:
1 lines • 1.35 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/hooks/useToggleState/index.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n/**\n * @description 두 개의 값을 토글하는 기능을 제공하는 훅입니다.\n * 기본값으로 제공된 두 개의 값을 관리하며, 선택된 값과 두 값을 토글할 수 있는 함수를 반환합니다.\n *\n * @template T - 토글할 값의 타입을 나타냅니다.\n * @param {T} value1 - 초기값이자 첫 번째 토글 값입니다.\n * @param {T} value2 - 두 번째 토글 값입니다.\n * @returns {[T, () => void]}\n *\n * @example\n * const [value, toggle] = useToggle('ON', 'OFF');\n *\n * value; // 'ON'\n * toggle();\n * value; // 'OFF'\n */\nexport function useToggleState<T>(value1: T, value2: T): [T, () => void] {\n const [value, setValue] = useState(value1);\n\n const toggle = useCallback(() => {\n setValue((prev) => (prev === value1 ? value2 : value1));\n }, [value1, value2]);\n\n return [value, toggle];\n}\n"],"names":[],"mappings":";;AAiBO,SAAS,cAAA,CAAkB,QAAW,MAAA,EAA4B;AACvE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,MAAM,CAAA;AAEzC,EAAA,MAAM,MAAA,GAAS,YAAY,MAAM;AAC/B,IAAA,QAAA,CAAS,CAAC,IAAA,KAAU,IAAA,KAAS,MAAA,GAAS,SAAS,MAAO,CAAA;AAAA,EACxD,CAAA,EAAG,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAEnB,EAAA,OAAO,CAAC,OAAO,MAAM,CAAA;AACvB;;;;"}