"use client";
import { useState } from "react";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { toast } from "sonner";
import { Button, Dialog, FormField, PageHeader, Textarea, EmptyState } from "@/components/ds";
import { loyaltyApi } from "@/modules/loyalty/services/loyalty-api";
import { useTenantId } from "@/hooks/useTenantId";
import { LoyaltyBreadcrumbs } from "@/modules/loyalty/components/LoyaltyBreadcrumbs";
import { LoyaltyPageLoader, LoyaltyPageError } from "@/modules/loyalty/pages/shared";
import { LoyaltyTablePage } from "@/modules/loyalty/design-system";
export default function PointRulesPage() {
const { tenantId } = useTenantId();
const qc = useQueryClient();
const [edit, setEdit] = useState<{ id: string; version: number; settings: string } | null>(null);
const q = useQuery({
queryKey: ["loyalty", tenantId, "programs-settings"],
queryFn: () => loyaltyApi.programs.list(tenantId!, { page: 1, page_size: 500 }),
enabled: !!tenantId,
});
const save = useMutation({
mutationFn: () =>
loyaltyApi.programs.update(tenantId!, edit!.id, {
settings: JSON.parse(edit!.settings || "{}"),
version: edit!.version,
}),
onSuccess: () => {
toast.success("تنظیمات ذخیره شد");
setEdit(null);
qc.invalidateQueries({ queryKey: ["loyalty", tenantId, "programs"] });
},
onError: (e: Error) => toast.error(e.message),
});
if (!tenantId || q.isLoading) return ;
if (q.error) return q.refetch()} />;
return (
(
{JSON.stringify(r.settings ?? {}).slice(0, 80)}
),
},
{
key: "actions",
header: "عملیات",
searchable: false,
render: (r) => (
),
},
]}
rows={(q.data ?? []) as unknown as Record[]}
empty={}
/>
);
}