"use client"; import { useParams } from "next/navigation"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; import { useTenantId } from "@/hooks/useTenantId"; import { experienceApi } from "@/modules/experience/services/experience-api"; import { ExperiencePageLoader, ExperiencePageError } from "@/modules/experience/pages/shared"; import { ExperienceDetailBreadcrumbs } from "@/modules/experience/components/ExperienceBreadcrumbs"; import { PageHeader, Button, Card, CardContent, FormField } from "@/components/ds"; export const SurveyBuilderPage = function ExperienceSurveyBuilder() { const params = useParams(); const surveyId = String(params.id); const { tenantId } = useTenantId(); const qc = useQueryClient(); const surveyQ = useQuery({ queryKey: ["experience", tenantId, "survey", surveyId], queryFn: () => experienceApi.surveys.get(tenantId!, surveyId), enabled: !!tenantId && !!surveyId, }); const saveM = useMutation({ mutationFn: (schema: string) => experienceApi.surveys.update(tenantId!, surveyId, { survey_schema_json: JSON.parse(schema), version: surveyQ.data?.version, }), onSuccess: () => { toast.success("اسکیمای نظرسنجی ذخیره شد"); qc.invalidateQueries({ queryKey: ["experience", tenantId, "survey", surveyId] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || surveyQ.isLoading) return ; if (surveyQ.error) return surveyQ.refetch()} />; const survey = surveyQ.data!; const schemaStr = JSON.stringify(survey.survey_schema_json ?? { questions: [] }, null, 2); return (