"use client"; import { useState } from "react"; import { useQuery, useMutation, 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 { PageHeader, Card, CardContent, Button, Input, FormField } from "@/components/ds"; import { ExperienceBreadcrumbs } from "@/modules/experience/components/ExperienceBreadcrumbs"; import { useExperienceWorkspace } from "@/modules/experience/hooks/useExperienceWorkspace"; export const SettingsPage = function ExperienceSettingsPage() { const { tenantId } = useTenantId(); const qc = useQueryClient(); const { workspaceId } = useExperienceWorkspace(); const [key, setKey] = useState(""); const [value, setValue] = useState("{}"); const listQ = useQuery({ queryKey: ["experience", tenantId, "settings"], queryFn: () => experienceApi.settings.list(tenantId!), enabled: !!tenantId, }); const saveM = useMutation({ mutationFn: () => experienceApi.settings.upsert(tenantId!, { workspace_id: workspaceId || null, setting_key: key, setting_value: JSON.parse(value || "{}"), }), onSuccess: () => { toast.success("تنظیمات ذخیره شد"); qc.invalidateQueries({ queryKey: ["experience", tenantId, "settings"] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || listQ.isLoading) return ; if (listQ.error) return listQ.refetch()} />; return ( setKey(e.target.value)} /> setValue(e.target.value)} /> saveM.mutate()} loading={saveM.isPending}>ذخیره {(listQ.data ?? []).map((s) => ( {String(s.setting_key ?? s.key)} {JSON.stringify(s.setting_value ?? s.value, null, 2)} ))} ); }; export default SettingsPage;
{JSON.stringify(s.setting_value ?? s.value, null, 2)}