خطوات Steps
يوجّه المستخدم لإكمال المهمة وفق تسلسل، ويدعم الاتجاهين الأفقي / العمودي، والتنقل بالنقر، وتغطية الحالة بشكل عام.
الاستخدام الأساسي
الاستخدام الأساسي
- المسودةتحديد التكوين والخطوط
- التدرّجتدراج الحبر على طبقات
- التلوينإضافة ألوان الدانتشينغ
- التوقيعالتوقيع والختم لإكمال اللوحة
- المسودة
- التدرّج
- التلوينيحتاج هذا الجزء إلى إعادة العمل
- التوقيع
- المسودةتحديد التكوين والخطوط
- التدرّجتدراج الحبر على طبقات
- التلوين
- التوقيع
import { useState } from 'react'
import { LhSteps, LhStep } from '@lh-ui/react'
export default function Demo() {
const [current, setCurrent] = useState(1)
return (
<LhSteps current={current} onChange={(index) => setCurrent(index)}>
<LhStep title="رسم المخطط" description="تحديد التكوين والخطوط" />
<LhStep title="تدرّج الحبر" description="تدرية الحبر على طبقات" />
<LhStep title="إضافة الألوان" description="إضافة ألوان دانتشينغ" />
<LhStep title="التوقيع والختم" description="التوقيع وختم اللوحة" />
</LhSteps>
)
}
Steps Props
| الخاصية | الوصف | النوع | القيم المتاحة | الافتراضي |
|---|---|---|---|---|
| current | فهرس الخطوة الحالية (يبدأ من 0، متحكَّم به) | number | — | — |
| defaultCurrent | القيمة الافترا ضية للخطوة الحالية (غير متحكَّم بها) | number | — | 0 |
| direction | الاتجاه | 'horizontal' | 'vertical' | — | 'horizontal' |
| clickable | إمكانية النقر على الخطوات للتنقل | boolean | — | false |
| status | حالة تُغطِّي جميع الخطوات (للعرض المخصَّص) | 'wait' | 'process' | 'finish' | 'error' | — | — |
| themeVars | متغيّرات سمة خاصة بالمكوّن (تُضاف تلقائيًا بادئة --lh- للمفاتيح) | Record<string, string> | — | — |
| sx | خصائص تخطيط سريعة | SxProps | — | — |
Step Props
| الخاصية | الوصف | النوع | الافتراضي |
|---|---|---|---|
| title | عنوان الخطوة | ReactNode | — |
| description | وصف الخطوة | ReactNode | — |
| icon | اسم أيقونة مخصّصة (عند عدم التمرير تستخدم حالتا finish / error علامة صح أو خطأ، وغيرهما يعرض الرقم التسلسلي) | LhIconName | — |
Steps أحداث
| الحدث | الوصف | معامل الاستدعاء | المقابل في Vue |
|---|---|---|---|
| onChange | يُطلَق عند تغيُّر الخطوة الحالية (فقط عند تفعيل clickable) | (index: number) => void | @change |
متحكَّم / غير متحكَّم
تمرير current يجعله متحكَّمًا به (لا يحتفظ المكوّن بحالة داخلية)؛ وتمرير defaultCurrent يجعله غير متحكَّم به بحالة داخلية. وكلا الوضعين يُطلِق onChange.
نطاق النقر
حتى عند تفعيل clickable، فقط الخطوات «المكتملة» و«قيد التنفيذ» تُعرَض كـ <button>؛ أما الخطوات المستقبلية (حالة wait) فتبقى <span> دائمًا، لمنع القفز إلى مراحل لم تُتحقَّق — وذلك يتوافق مع سلوك lh-ui-plus.
قيود العناصر الفرعية
يجب أن يكون children مباشرةً LhStep (يمكن العرض عبر .map)، ولا يمكن لفّه بمكوّن مخصَّص — إذ يعتمد المكوّن الأب على Children.toArray لتصفية أنواع العناصر الفرعية وحقن الفهارس، واللفّ يؤدي إلى فشل حقن الفهرس واضطراب حساب الحالات.