تخطّي إلى المحتوى الرئيسي

منتقي Select

منتقي منسدل، يدعم الوضعين المتحكَّم وغير المتحكَّم، والتنقل بلوحة المفاتيح، والمسح.

الاستخدام الأساسي​

تحكُّم بالاختيار

القيمة الحالية: (غير محدد)

import { useState } from 'react'
import { LhSelect } from '@lh-ui/react'
import type { LhSelectOption } from '@lh-ui/react'

const options: LhSelectOption[] = [
{ label: 'رسم الحبر', value: 'ink' },
{ label: 'ألوان دانتشينغ', value: 'danqing' },
{ label: 'مساحة فارغة', value: 'blank' },
{ label: 'الرسم الدقيق', value: 'gongbi' },
]

export default function Demo() {
const [value, setValue] = useState<string>('')

return (
<LhSelect
value={value}
options={options}
placeholder="اختر أسلوب الرسم"
onChange={(val) => setValue(val as string)}
/>
)
}

Select Props​

الخاصيةالوصفالنوعالقيم المتاحةالافتراضي
valueالقيمة المتحكَّم بهاunknown——
defaultValueالقيمة الافتراضية غير المتحكَّم بهاunknown——
optionsقائمة الخياراتLhSelectOption[]—[]
placeholderعنصر نائبstring—احتياط حزمة اللغة
disabledمعطّلboolean—false
clearableقابل للمسحboolean—false
sizeالحجم'large' | 'middle' | 'small'—يُكتسَب من ConfigProvider
nameالخاصية الأصلية namestring——
ariaLabelوسم إمكانية الوصولstring——
placementموضع القائمة المنسدلةLhPlacement—'bottom-start'
themeVarsمتغيّرات سمة خاصة بالمكوّنRecord<string, string>——
sxخصائص تخطيط سريعةSxProps——

LhSelectOption​

الخاصيةالوصفالنوع
labelالنص الظاهر للخيارstring
valueقيمة الخيارunknown
disabledتعطيل هذا الخيارboolean

Select أحداث​

الحدثالوصفمعامل الاستدعاءالمقابل في Vue
onChangeيُطلَق عند التحديد (معاملان: القيمة وكائن الخيار)(value: unknown, option: LhSelectOption | undefined) => void@change
onClearيُطلَق عند المسح() => void@clear

تفاعل لوحة المفاتيح​

عند التوسيع: يُبرز ArrowUp / ArrowDown الخيارات (مع تخطّي المعطَّلة)، ويُحدِّد Enter خيارًا، ويُطوي Escape القائمة. المُشغِّل يحمل role="combobox"، واللوحة role="listbox"، والخيارات role="option"، مع مزامنة الإبراز عبر aria-activedescendant.

المرجع​

forwardRef<HTMLDivElement> —— العنصر الجذري للمُشغِّل. يكشف LhSelectInstance عن open() / close() / focus().

الأنماط​

import '@lh-ui/react/style/select'