refactor(hooks): [useFocusController] add disabled attribute (#21032)

refactor(hooks): [useFocusController] add disabled prop

Co-authored-by: warmthsea <2586244885@qq.com>
This commit is contained in:
qiang
2025-07-01 16:41:35 +08:00
committed by GitHub
parent c5d37fbb0a
commit b881ef25cb
10 changed files with 80 additions and 51 deletions

View File

@ -92,6 +92,15 @@ export const useSelect = (props: SelectProps, emit: SelectEmits) => {
const tagMenuRef = ref<HTMLElement>()
const collapseItemRef = ref<HTMLElement>()
const scrollbarRef = ref<ScrollbarInstance>()
// the controller of the expanded popup
const expanded = ref(false)
const hoverOption = ref()
const { form, formItem } = useFormItem()
const { inputId } = useFormItemInputId(props, {
formItemContext: formItem,
})
const { valueOnClear, isEmptyValue } = useEmptyValues(props)
const {
isComposing,
@ -102,10 +111,10 @@ export const useSelect = (props: SelectProps, emit: SelectEmits) => {
afterComposition: (e) => onInput(e),
})
const selectDisabled = computed(() => props.disabled || !!form?.disabled)
const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {
beforeFocus() {
return selectDisabled.value
},
disabled: selectDisabled,
afterFocus() {
if (props.automaticDropdown && !expanded.value) {
expanded.value = true
@ -127,18 +136,6 @@ export const useSelect = (props: SelectProps, emit: SelectEmits) => {
},
})
// the controller of the expanded popup
const expanded = ref(false)
const hoverOption = ref()
const { form, formItem } = useFormItem()
const { inputId } = useFormItemInputId(props, {
formItemContext: formItem,
})
const { valueOnClear, isEmptyValue } = useEmptyValues(props)
const selectDisabled = computed(() => props.disabled || form?.disabled)
const hasModelValue = computed(() => {
return isArray(props.modelValue)
? props.modelValue.length > 0