لوح جانبي
Drawerلوح في React ينزلق من بداية السطر أو نهايته أو الأسفل للإعدادات ولوحات التفاصيل ونماذج التصفية. تعامل مع التركيز كما في Modal، وجوانب تراعي الاتجاه العربي.
ينزلق Drawer من حافة الشاشة بنفس سلوك التركيز وزر ESC في Modal. الخاصية side منطقية، لذا تنعكس start/end مع الاتجاه.
متى تستخدمه
استخدم Drawer للتدفّقات الثانوية التي تحتاج مساحة أكبر من Modal: تحرير الإعدادات، أو عرض تفاصيل سجل، أو نموذج تصفية. استخدم اللوح السفلي في الجوال للمنتقيات القصيرة.
لأن side منطقي، يتبادل start وend في الاتجاه العربي. أبقِ الصفحة خلفه ظاهرة ليحتفظ المستخدم بسياقه.
أمثلة
الخصائص
الخصائص التي يعرّفها Drawer. سمات العنصر الأصلي تمرّ كما هي.
<Drawer>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
children | ReactNode | ||
open | boolean | ||
defaultOpen | boolean | ||
onOpenChange | (open: boolean) => void | ||
modal | boolean |
<DrawerTrigger>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
asChild | boolean |
<DrawerClose>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
asChild | boolean |
<DrawerContent>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
side | "start" | "end" | "top" | "bottom" | ||
size | "sm" | "md" | "lg" | "full" | ||
showCloseButton | boolean | Show the corner X close button. Defaults to true. | |
closeLabel | string | Localized aria-label for the close button. Defaults to "Close". | |
forceMount | true | Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries. | |
onOpenAutoFocus | (event: Event) => void | Event handler called when auto-focusing on open. Can be prevented. | |
onCloseAutoFocus | (event: Event) => void | Event handler called when auto-focusing on close. Can be prevented. | |
deferPointerDownOutside | boolean | When true, a 'pointerdown' event outside of the layered element will
wait for the interaction's click event before dispatching, allowing
third-party code to stop propagation of later events and cancel dismissal. | |
onEscapeKeyDown | (event: KeyboardEvent) => void | Event handler called when the escape key is down. Can be prevented. | |
onPointerDownOutside | (event: PointerDownOutsideEvent) => void | Event handler called when the a pointerdown event happens outside of the DismissableLayer.
Can be prevented. | |
onFocusOutside | (event: FocusOutsideEvent) => void | Event handler called when the focus moves outside of the DismissableLayer.
Can be prevented. | |
onInteractOutside | (event: PointerDownOutsideEvent | FocusOutsideEvent) => void | Event handler called when an interaction happens outside the DismissableLayer.
Specifically, when a pointerdown event happens outside or focus moves outside of it.
Can be prevented. | |
asChild | boolean |
<DrawerTitle>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
asChild | boolean |
<DrawerDescription>
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
asChild | boolean |
إمكانية الوصول
يُبنى Drawer على أساس الحوار نفسه في Modal: يُحصر التركيز داخله، ويغلقه Escape، ويعود التركيز إلى المشغّل. تمنح أجزاء العنوان والوصف اللوحَ اسمه المتاح.
لزر الإغلاق اسم متاح، ويتبع اللوح اتجاه الصفحة فينزلق من الحافّة المتوقّعة.