Files
frontend/apps/cs/src/pages/module/ui/modify-page.tsx
T

53 lines
1.6 KiB
TypeScript

"use client";
import { useRouter } from "next/navigation";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { useQuery } from "@tanstack/react-query";
import { useAlertStore, useMutationWrapper } from "@/shared/lib";
import { ENDPOINT } from "@/shared/config";
import {
AuthorizationsApi,
authorizationFormSchema,
type AuthorizationFormData,
} from "@/entities/authorization";
import { ModuleForm } from "./module-form";
function ModifyPage({ sequential }: { sequential: string }) {
const router = useRouter();
const alert = useAlertStore((state) => state.setMessage);
const { data: authorizationInfo } = useQuery({
queryKey: [ENDPOINT.USER_SERVICE.AUTHORIZATIONS, sequential],
queryFn: () => AuthorizationsApi.getAuthorizationInfo(sequential),
});
const { mutateAsync: updateAuthorization } = useMutationWrapper({
mutationFn: (data: AuthorizationFormData) =>
AuthorizationsApi.updateAuthorization(sequential, data),
onSuccess: () => {
alert("수정되었습니다.", router.back);
},
});
const form = useForm<AuthorizationFormData>({
resolver: zodResolver(authorizationFormSchema),
values: authorizationInfo,
});
return (
<div className="card card-border !mt-6">
<div className="card-header">
<h3 className="text-2xl font-medium text-label">모듈API 수정</h3>
</div>
<ModuleForm
form={form}
authorizationNo={parseInt(sequential)}
handleSave={updateAuthorization}
/>
</div>
);
}
export { ModifyPage };