import { useParams } from "react-router-dom"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { getPluginManifest, getPluginSettings, updatePluginSettings } from "@/api/client"; import PluginSchemaForm from "@/components/PluginSchemaForm"; export default function PluginSettingsPage() { const { id } = useParams<{ id: string }>(); const queryClient = useQueryClient(); const { data: manifest, isLoading: manifestLoading, isError: manifestError } = useQuery({ queryKey: ["plugin-manifest", id], queryFn: () => getPluginManifest(id!), enabled: !!id, retry: false, }); const { data: settings, isLoading: settingsLoading } = useQuery({ queryKey: ["plugin-settings", id], queryFn: () => getPluginSettings(id!), enabled: !!id && !!manifest, }); const mutation = useMutation({ mutationFn: (values: Record) => updatePluginSettings(id!, values), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["plugin-settings", id] }); }, }); if (manifestLoading || settingsLoading) { return

Loading…

; } if (manifestError || !manifest) { return (

Plugin not found or you do not have access to its settings.

); } return (

{manifest.settings_schema.title ?? manifest.name}

{manifest.name} · v{manifest.version}

mutation.mutate(values)} isPending={mutation.isPending} isError={mutation.isError} isSuccess={mutation.isSuccess} />
); }