"use client"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; import { Button, Dialog, FormField, Input, Select, Checkbox, PageHeader, EmptyState, } from "@/components/ds"; import { crmApi } from "@/modules/crm/services/crm-api"; import { useTenantId } from "@/hooks/useTenantId"; import { CrmPageLoader, CrmPageError } from "@/modules/crm/pages/shared"; import { CrmBreadcrumbs } from "@/modules/crm/components/CrmBreadcrumbs"; export default function CustomFieldsPage() { const { tenantId } = useTenantId(); const qc = useQueryClient(); const [entityType, setEntityType] = useState("lead"); const [open, setOpen] = useState(false); const q = useQuery({ queryKey: ["crm", tenantId, "custom-fields", entityType], queryFn: () => crmApi.customFields.list(tenantId!, entityType), enabled: !!tenantId, }); const form = useForm({ defaultValues: { code: "", label: "", field_type: "text", is_required: false, }, }); const createM = useMutation({ mutationFn: (d: Record) => crmApi.customFields.create(tenantId!, { ...d, entity_type: entityType }), onSuccess: async () => { toast.success("فیلد ایجاد شد"); setOpen(false); form.reset(); await qc.invalidateQueries({ queryKey: ["crm", tenantId, "custom-fields"] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || q.isLoading) return ; if (q.error) return q.refetch()} />; return (
setOpen(true)}>فیلد جدید} />
{(q.data ?? []).map((f) => (

{f.label}

{f.code} — {f.field_type}

{f.is_required ? ( الزامی ) : null}
))} {(q.data ?? []).length === 0 ? : null}
setOpen(false)} title="فیلد سفارشی">
createM.mutate(d))}>
); }