< 성공/실패 Modal >
<aside>
openModal
의 매개변수는 상태 코드, 페이지 유형, 카드 정보로 구성됨.
openModal(status, type, cardInfo)
각각의 내용:
// 사전 작업
const { openNodal } = useStateModal() // 이름 겹치면 openStateModal 등으로 쓸 것
// 사용 예시("생성") -- react-query와 연동 ver.
const { mutate } = useMutation({
mutationFn: postCard,
onSuccess: (data) => {
openModal(201, "생성", { grade, name, count: volumn }); // 여기!
},
onError: (err) => {
openModal(500, "생성", { grade, name, count: volumn }); // 여기!
console.error("카드 생성 실패", err.message);
},
});
< 알림 Modal >
<aside>
openModal
의 매개변수는 페이지 유형, 카드 정보, 함수 실행부로 구성됨.
openModal(type, cardInfo, onAction)
각각의 내용:
// 0. 사전 작업
const { openModal } = useAlertModal(); // 이름 겹치면 openAlertModal 등으로 쓸 것
// 1. 로그인
openModal("로그인", {}, () => router.push("/login"));
// 2. 구매
openModal("구매", { grade: "COMMON", name: "카드", count: "2" }, () => { 함수 });
// 3. 교환 승인 + 추가 action 없을 때 함수
openModal("교환 승인", { grade: "RARE", name: "짱짱 센 카드" }, () => {});
// (+) 버튼에 연동해서 쓸 때
export default function MyPage() {
const { openModal } = useAlertModal();
const handleClick = () => {
openAlertModal("교환 승인", { grade: "RARE", name: "짱짱 센 카드" }, () => {});
};
return (
<>
<button onClick={handleClick}>알림 모달 버튼</button>
<NotiModal />
</>
);
}