tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 1.71 kB
Source Map (JSON)
{"version":3,"file":"useToggle.mjs","sources":["../../src/hooks/useToggle.ts"],"sourcesContent":["import { isRef, Ref, ref } from 'vue';\n\nexport type ToggleValueType = string | number | boolean | undefined;\n\nexport default function useToggle<T extends ToggleValueType>(values: Array<T>, defaultValue?: T | Ref<T>) {\n const innerValues = values || [true, false];\n let state = ref();\n if (defaultValue === undefined) {\n state = ref(innerValues[1]);\n } else if (isRef(defaultValue)) {\n state = defaultValue;\n } else {\n state = ref(defaultValue);\n }\n const toggle = (value?: T) => {\n if (value !== undefined) {\n state.value = value;\n } else {\n state.value = state.value === innerValues[1] ? innerValues[0] : innerValues[1];\n }\n };\n return {\n state,\n toggle,\n };\n}\n"],"names":["useToggle","values","defaultValue","innerValues","state","ref","isRef","toggle","value"],"mappings":";;;;;;;;AAIwB,SAAAA,SAAAA,CAAqCC,QAAkBC,YAA2B,EAAA;EACxG,IAAMC,WAAc,GAAAF,MAAA,IAAU,CAAC,IAAA,EAAM,KAAK,CAAA,CAAA;AAC1C,EAAA,IAAIG,QAAQC,GAAI,EAAA,CAAA;AAChB,EAAA,IAAIH,iBAAiB,KAAW,CAAA,EAAA;AACtBE,IAAAA,KAAA,GAAAC,GAAA,CAAIF,YAAY,CAAE,CAAA,CAAA,CAAA;AAC5B,GAAA,MAAA,IAAWG,KAAM,CAAAJ,YAAY,CAAG,EAAA;AACtBE,IAAAA,KAAA,GAAAF,YAAA,CAAA;AACV,GAAO,MAAA;AACLE,IAAAA,KAAA,GAAQC,IAAIH,YAAY,CAAA,CAAA;AAC1B,GAAA;AACM,EAAA,IAAAK,MAAA,GAAS,SAATA,MAAAA,CAAUC,KAAc,EAAA;AAC5B,IAAA,IAAIA,UAAU,KAAW,CAAA,EAAA;MACvBJ,KAAA,CAAMI,KAAQ,GAAAA,KAAA,CAAA;AAChB,KAAO,MAAA;MACLJ,KAAA,CAAMI,QAAQJ,KAAM,CAAAI,KAAA,KAAUL,YAAY,CAAK,CAAA,GAAAA,WAAA,CAAY,KAAKA,WAAY,CAAA,CAAA,CAAA,CAAA;AAC9E,KAAA;GACF,CAAA;EACO,OAAA;AACLC,IAAAA,KAAA,EAAAA,KAAA;AACAG,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF;;;;"}