جدول البيانات (DataTable)

يعرض مكوّن جدول البيانات (DataTable) البيانات في جدول، مع الترتيب والتحديد والتنقّل بين الصفحات (pagination).

التثبيت

bash
npx @smicolon/cli add data-table

قبل إضافة أي مكوّن، شغّل الأمر init مرة واحدة في مشروعك. التفاصيل في صفحة التثبيت.

معاينة

الاسمالبريد الإلكترونيالدور
ليلى حدادlayla@example.comمدير
عمر خليلomar@example.comمحرر
سارة ناصرsara@example.comمشاهد

التنقّل بين الصفحات (pagination)

حالة التحميل

الاسمالبريد الإلكترونيالدور

حالة فارغة

الاسمالبريد الإلكترونيالدور

لا يوجد مستخدمون

الخصائص (props)

الخاصيةالنوعالافتراضيالوصف
dataT[]لا يوجدالصفوف المعروضة.
columnsColumn<T>[]لا يوجدتعريفات الأعمدة، وتأخذ align في كل عمود إحدى القيم start، center، end بحسب اتجاه القراءة.
getRowKey(row) => string | numberلا يوجدمفتاح فريد لكل صف.
loadingbooleanfalseيعرض حالة التحميل.
emptyStateReactNodeلا يوجديظهر حين لا توجد صفوف.
onRowClick(row) => voidلا يوجدتُستدعى عند النقر على صف.
selectedKeystring | numberلا يوجدمفتاح الصف المحدد.
stickyHeaderbooleanfalseيُبقي رأس الجدول ظاهرًا عند التمرير.
Pagination{ page, totalPages, onPageChange, labels }لا يوجدينقّل بين صفحات الجدول، وتترجم labels نصوصه.
classNamestringلا يوجدأصناف (class) إضافية للمكوّن.

الاستخدام

tsx
import { DataTable, Column } from "@/components/blocks/data-table"

const columns: Column<User>[] = [
  { id: "name", header: "الاسم", cell: (row) => row.name },
  { id: "email", header: "البريد الإلكتروني", cell: (row) => row.email },
]

<DataTable
  data={users}
  columns={columns}
  getRowKey={(row) => row.id}
  onRowClick={(row) => console.log(row)}
/>