55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
"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>
|
|
);
|
|
}
|