هذا هو جدول Shadcn مع فرز من جانب الخادم ، والتصفية ، والترقيم. إنه محاذاة مع create-t3-app
.
تحذير هذا المشروع لا يزال قيد التطوير وليس جاهزًا للاستخدام.
يستخدم تقنيات جديدة (PPR ، برنامج التحويل البرمجي) الذي يخضع للتغيير وقد يكسر التطبيق الخاص بك.
useDataTable
) dataTable
و columns
Props) filterFields
Prop) Data-Table-Toolbar
الديناميكية مع البحث والمرشحات والإجراءات Notion
اختيارية مثل التصفية المتقدمة ( enableAdvancedFilter
Prop) Linear
اختياري مثل الشريط العائم على اختيار الصف ( floatingBar
Prop) استنساخ المستودع
git clone https://github.com/sadmann7/shadcn-table
تثبيت التبعيات باستخدام PNPM
pnpm install
انسخ .env.example
إلى .env
وتحديث المتغيرات.
cp .env.example .env
ابدأ خادم التطوير
pnpm run dev
ادفع مخطط قاعدة البيانات
pnpm run db:push
انسخ المجلدات والملفات التالية في مشروعك (تم تكوينه مع) في المواقع المحددة المحددة الدقيقة
src/components/data-table
src/db/index.ts
src/hooks
src/lib
src/types
قم أيضًا بتثبيت مكونات ShadCN المطلوبة والحزم المطلوبة الأخرى مع الأوامر التالية:
pnpm dlx shadcn@latest init
pnpm dlx shadcn@latest add badge button calendar checkbox command dialog dropdown-menu form input label popover select separator skeleton sonner table toggle-group tooltip drawer
pnpm add drizzle-orm postgres @tanstack/react-table zod @t3-oss/env-nextjs
pnpm add -D drizzle-kit dotenv-cli pg tsx
قم بتكوين متغيرات البيئة الخاصة بك ثم قم بإعداد عنوان URL لقاعدة البيانات ، لهذا المثال ، نحن نستخدم قاعدة بيانات MySQL2 PlanetScale. سيتم أيضًا إجراء مخططاتنا باستخدام هذا.
إجراءات قاعدة البيانات: لهذا يمكنك استخدام أي orm من اختيارك ، ولكن من أجل هذا المثال بالذات ، نحن نستخدم Drizzle Orm و Neon.
على سبيل المثال ، دعنا نستخدم جدول tasks
.
@/db/schema.ts
@/lib/validations/tasks.ts
إعداد الجدول
page.tsx
، وإذا لزم الأمر ، layout.tsx
../_components
و ./_lib
الدلائل في مشروعك../_lib/queries.ts
، و ./_lib/actions.ts
لمطابقة عمليات قاعدة البيانات الخاصة بك../_components/tasks-table-floating-bar.tsx
تحديث../_components/tasks-table-columns.tsx
getTaskCountByPriority
بيانات الإعداد getTaskCountByStatus
getTasksPromise
./page.tsx
./_components/tasks-table.tsx
، تستهلك وعد getTasksPromise
باستخدام خطاف React.use
. يتم تمرير الوعد لتشغيل حدود suspense
../_components/tasks-table.tsx
، أعمدة مذكرات محددة في ./_components/tasks-table-columns.tsx
باستخدام hook React.useMemo
لمنع إعادة التوريد غير الضرورية../_components/tasks-table.tsx
، اتصل ./hooks/useTasksTable.tsx
./components/tasks-table-provider.tsx
. يتم استخدام المزود لعرض بعض الميزات الإضافية مثل الشريط العائم والمرشحات المتقدمة. شاهد فيديو نظرة عامة على CodeBase على YouTube.
فكر في الاشتراك في قناة Kavin Desi Valli's YouTube لمزيد من مقاطع الفيديو.
اتبع أدلة النشر لـ Vercel و NetLify و Docker لمزيد من المعلومات.