UNPKG

hongluan-ui

Version:
51 lines (48 loc) 1.57 kB
import { inject, ref, computed, unref } from 'vue'; import '../../../hooks/index.mjs'; import '../../../tokens/index.mjs'; import { collapseContextKey } from '../../../tokens/collapse.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; import { useIdInjection } from '../../../hooks/use-id/index.mjs'; const useCollapseItem = (props) => { const collapse = inject(collapseContextKey); const { namespace } = useNamespace("collapse"); const focusing = ref(false); const isClick = ref(false); const idInjection = useIdInjection(); const id = computed(() => idInjection.current++); const name = computed(() => { var _a; return (_a = props.name) != null ? _a : `${namespace.value}-id-${idInjection.prefix}-${unref(id)}`; }); const isActive = computed(() => collapse == null ? void 0 : collapse.activeNames.value.includes(unref(name))); const handleFocus = () => { setTimeout(() => { if (!isClick.value) { focusing.value = true; } else { isClick.value = false; } }, 50); }; const handleHeaderClick = () => { if (props.disabled) return; collapse == null ? void 0 : collapse.handleItemClick(unref(name)); focusing.value = false; isClick.value = true; }; const handleEnterClick = () => { collapse == null ? void 0 : collapse.handleItemClick(unref(name)); }; return { focusing, id, isActive, handleFocus, handleHeaderClick, handleEnterClick }; }; export { useCollapseItem }; //# sourceMappingURL=use-collapse-item.mjs.map