"use client"; import { useState } from "react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; import { useTenantId } from "@/hooks/useTenantId"; import { deliveryApi } from "@/modules/delivery/services/delivery-api"; import { DeliveryPageLoader, DeliveryPageError } from "@/modules/delivery/pages/shared"; import { PageHeader, Card, CardContent, Button, Input, FormField } from "@/components/ds"; import { DeliveryBreadcrumbs } from "@/modules/delivery/components/DeliveryBreadcrumbs"; import { useDeliveryLookups } from "@/modules/delivery/hooks/useDeliveryCapabilities"; export const SettingsPage = function DeliverySettingsPage() { const { tenantId } = useTenantId(); const qc = useQueryClient(); const lookups = useDeliveryLookups(tenantId); const [key, setKey] = useState(""); const [value, setValue] = useState(""); const [orgId, setOrgId] = useState(""); const listQ = useQuery({ queryKey: ["delivery", tenantId, "settings"], queryFn: () => deliveryApi.settings.list(tenantId!), enabled: !!tenantId, }); const saveM = useMutation({ mutationFn: () => deliveryApi.settings.upsert(tenantId!, { organization_id: orgId || null, key, value: JSON.parse(value || "{}"), }), onSuccess: () => { toast.success("تنظیمات ذخیره شد"); qc.invalidateQueries({ queryKey: ["delivery", tenantId, "settings"] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || listQ.isLoading || lookups.isLoading) return ; if (listQ.error) return listQ.refetch()} />; return (
setKey(e.target.value)} /> setValue(e.target.value)} placeholder='{"enabled":true}' />
{(listQ.data ?? []).map((s) => ( {String(s.key)}
{JSON.stringify(s.value, null, 2)}
))}
); }; export default SettingsPage;