feat: initial
This commit is contained in:
@@ -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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user