import { zodResolver } from "@hookform/resolvers/zod" import { Button, Input, Text } from "@medusajs/ui" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import * as zod from "zod" import { HttpTypes } from "@medusajs/types" import { Form } from "../../../../../components/common/form" import { RouteDrawer, useRouteModal } from "../../../../../components/modals" import { KeyboundForm } from "../../../../../components/utilities/keybound-form" import { useUpdateCollection } from "../../../../../hooks/api/collections" type EditCollectionFormProps = { collection: HttpTypes.AdminCollection } const EditCollectionSchema = zod.object({ title: zod.string().min(1), handle: zod.string().min(1), }) export const EditCollectionForm = ({ collection }: EditCollectionFormProps) => { const { t } = useTranslation() const { handleSuccess } = useRouteModal() const form = useForm>({ defaultValues: { title: collection.title, handle: collection.handle, }, resolver: zodResolver(EditCollectionSchema), }) const { mutateAsync, isPending } = useUpdateCollection(collection.id) const handleSubmit = form.handleSubmit(async (data) => { await mutateAsync(data, { onSuccess: () => { handleSuccess() }, }) }) return (
{ return ( {t("fields.title")} ) }} /> { return ( {t("fields.handle")}
/
) }} />
) }