import { zodResolver } from "@hookform/resolvers/zod" import { Button, Input, toast } from "@medusajs/ui" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import * as zod from "zod" import { ApiKeyDTO } from "@medusajs/types" import { Form } from "../../../../../components/common/form" import { RouteDrawer, useRouteModal } from "../../../../../components/modals" import { KeyboundForm } from "../../../../../components/utilities/keybound-form" import { useUpdateApiKey } from "../../../../../hooks/api/api-keys" type EditApiKeyFormProps = { apiKey: ApiKeyDTO } const EditApiKeySchema = zod.object({ title: zod.string().min(1), }) export const EditApiKeyForm = ({ apiKey }: EditApiKeyFormProps) => { const { t } = useTranslation() const { handleSuccess } = useRouteModal() const form = useForm>({ defaultValues: { title: apiKey.title, }, resolver: zodResolver(EditApiKeySchema), }) const { mutateAsync, isPending } = useUpdateApiKey(apiKey.id) const handleSubmit = form.handleSubmit(async (data) => { await mutateAsync(data, { onSuccess: ({ api_key }) => { toast.success( t("apiKeyManagement.edit.successToast", { title: api_key.title, }) ) handleSuccess() }, onError: (err) => { toast.error(err.message) }, }) }) return (
{ return ( {t("fields.title")} ) }} />
) }