feat: initial

This commit is contained in:
2026-06-03 03:08:57 +03:30
parent 3d9585ac5c
commit 6fa30eb29a
45 changed files with 7053 additions and 86 deletions
+54
View File
@@ -0,0 +1,54 @@
"use client";
import { useList } from "@/lib/useResource";
import { DataTable, type Column } from "@/components/DataTable";
import { PageHeader, Card } from "@/components/ui";
import { toFa } from "@/lib/utils";
interface Mood {
id: number;
name?: string;
title?: string;
emoji?: string;
icon?: string;
}
export default function MoodsPage() {
const { data, loading, error, reload } = useList<Mood>("/moods");
const columns: Column<Mood>[] = [
{ key: "id", header: "شناسه", render: (r) => toFa(r.id), className: "w-20" },
{ key: "name", header: "نام", render: (r) => r.name ?? r.title ?? "—" },
{
key: "emoji",
header: "نماد",
render: (r) => r.emoji ?? r.icon ?? "—",
className: "w-24",
},
];
return (
<div>
<PageHeader
title="حالت‌ها"
subtitle="فهرست حالت‌های احساسی کاربران"
/>
<DataTable
columns={columns}
rows={data}
loading={loading}
error={error}
onRetry={reload}
emptyTitle="حالتی تعریف نشده"
emptyMessage="هیچ حالتی برای نمایش وجود ندارد."
/>
<Card className="mt-4">
<p className="text-sm text-muted">
حالتها از پیش تعریف شدهاند و قابل ویرایش نیستند.
</p>
</Card>
</div>
);
}