import { Modal, TextInput, Button, Group, Stack } from "@mantine/core"; import { useForm } from "@mantine/form"; import { zod4Resolver } from "mantine-form-zod-resolver"; import { z } from "zod/v4"; import { useTranslation } from "react-i18next"; import { useUpdateApiKeyMutation } from "@/ee/api-key/queries/api-key-query"; import { IApiKey } from "@/ee/api-key"; import { useEffect } from "react"; const formSchema = z.object({ name: z.string().min(1, "Name is required"), }); type FormValues = z.infer; interface UpdateApiKeyModalProps { opened: boolean; onClose: () => void; apiKey: IApiKey | null; } export function UpdateApiKeyModal({ opened, onClose, apiKey, }: UpdateApiKeyModalProps) { const { t } = useTranslation(); const updateApiKeyMutation = useUpdateApiKeyMutation(); const form = useForm({ validate: zod4Resolver(formSchema), initialValues: { name: "", }, }); useEffect(() => { if (opened && apiKey) { form.setValues({ name: apiKey.name }); } }, [opened, apiKey]); const handleSubmit = async (data: { name?: string }) => { const apiKeyData = { apiKeyId: apiKey.id, name: data.name, }; await updateApiKeyMutation.mutateAsync(apiKeyData); onClose(); }; return (
handleSubmit(values))}>
); }