"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, 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 DocumentsPage() { const { tenantId } = useTenantId(); const qc = useQueryClient(); const [open, setOpen] = useState(false); const [entityType, setEntityType] = useState("lead"); const [entityId, setEntityId] = useState(""); const q = useQuery({ queryKey: ["crm", tenantId, "attachments", entityType, entityId], queryFn: () => crmApi.attachments.list(tenantId!, entityType, entityId), enabled: !!tenantId && !!entityId, }); const form = useForm({ defaultValues: { file_storage_id: "", title: "", kind: "document" }, }); const createM = useMutation({ mutationFn: (d: Record) => crmApi.attachments.create(tenantId!, { entity_type: entityType, entity_id: entityId, file_storage_id: d.file_storage_id, title: d.title, kind: d.kind, }), onSuccess: async () => { toast.success("پیوست ثبت شد"); setOpen(false); form.reset(); await qc.invalidateQueries({ queryKey: ["crm", tenantId, "attachments"] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId) return ; return (
setOpen(true)} disabled={!entityId}> ثبت پیوست } />
setEntityId(e.target.value)} className="max-w-md" />
{entityId && q.isLoading ? : null} {q.error ? q.refetch()} /> : null} {entityId && q.data ? (
{q.data.map((a) => (

{a.title ?? a.kind}

{a.file_storage_id}

))} {q.data.length === 0 ? : null}
) : ( !entityId && )} setOpen(false)} title="ثبت پیوست">
createM.mutate(d))}>
); }