import { zodResolver } from "@hookform/resolvers/zod" import { Button, Heading, Input, Text, toast } from "@medusajs/ui" import { useForm } from "react-hook-form" import { useTranslation } from "react-i18next" import * as zod from "zod" import { Form } from "../../../../../components/common/form" import { HandleInput } from "../../../../../components/inputs/handle-input" import { RouteFocusModal, useRouteModal, } from "../../../../../components/modals" import { KeyboundForm } from "../../../../../components/utilities/keybound-form" import { useCreateCollection } from "../../../../../hooks/api/collections" const CreateCollectionSchema = zod.object({ title: zod.string().min(1), handle: zod.string().optional(), }) export const CreateCollectionForm = () => { const { t } = useTranslation() const { handleSuccess } = useRouteModal() const form = useForm>({ defaultValues: { title: "", handle: "", }, resolver: zodResolver(CreateCollectionSchema), }) const { mutateAsync, isPending } = useCreateCollection() const handleSubmit = form.handleSubmit(async (data) => { await mutateAsync(data, { onSuccess: ({ collection }) => { handleSuccess(`/collections/${collection.id}`) toast.success(t("collections.createSuccess")) }, onError: (error) => { toast.error(error.message) }, }) }) return (
{t("collections.createCollection")} {t("collections.createCollectionHint")}
{ return ( {t("fields.title")} ) }} /> { return ( {t("fields.handle")} ) }} />
) }