Files
frontend/apps/cs/src/pages/banner/ui/create-page.tsx
T

47 lines
1.2 KiB
TypeScript

"use client";
import { useRouter } from "next/navigation";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { useMutation } from "@tanstack/react-query";
import { useAlertStore } from "@/shared/lib/use-alert-store";
import {
bannerFormSchema,
type BannerFormData,
} from "../model/banner-interface";
import { BannerApi } from "../api/banner-service";
import { BannerForm } from "./banner-form";
function CreatePage() {
const router = useRouter();
const { setMessage: alert } = useAlertStore((state) => state);
const { mutateAsync: createBanner } = useMutation({
mutationFn: (data: BannerFormData) => BannerApi.createBanner(data),
onSuccess: () => {
alert("등록되었습니다.", router.back);
},
});
const form = useForm<BannerFormData>({
resolver: zodResolver(bannerFormSchema),
defaultValues: {
newWndwYn: "N",
useYn: "Y",
},
});
console.log(form.formState.errors);
return (
<div className="card card-border !mt-6">
<div className="card-header">
<h3 className="text-2xl font-medium text-label">배너 등록</h3>
</div>
<BannerForm form={form} handleSave={createBanner} />
</div>
);
}
export { CreatePage };