diff --git a/frontend/src/pages/pc/admin/schedules/form/index.jsx b/frontend/src/pages/pc/admin/schedules/form/index.jsx index ff95381..46cac34 100644 --- a/frontend/src/pages/pc/admin/schedules/form/index.jsx +++ b/frontend/src/pages/pc/admin/schedules/form/index.jsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from "react"; +import { useState, useEffect, useMemo } from "react"; import { useNavigate, Link } from "react-router-dom"; import { useQuery } from "@tanstack/react-query"; import { motion, AnimatePresence } from "framer-motion"; @@ -49,19 +49,20 @@ function ScheduleFormPage() { queryFn: categoriesApi.getCategories, enabled: isAuthenticated, staleTime: 10 * 60 * 1000, - onSuccess: (data) => { - if (data.length > 0 && !selectedCategory) { - setSelectedCategory(data[0].id); - } - }, }); - // 카테고리 로드 시 기본값 설정 + // 자동 생성/계산 전용 카테고리는 수동 추가 폼에서 제외 (생일·기념일) + const selectableCategories = useMemo( + () => categories.filter((c) => c.name !== '생일' && c.name !== '기념일'), + [categories] + ); + + // 카테고리 로드 시 기본값 설정 (선택 가능한 카테고리 기준) useEffect(() => { - if (categories.length > 0 && !selectedCategory) { - setSelectedCategory(categories[0].id); + if (selectableCategories.length > 0 && !selectedCategory) { + setSelectedCategory(selectableCategories[0].id); } - }, [categories, selectedCategory]); + }, [selectableCategories, selectedCategory]); // 카테고리에 따른 폼 렌더링 const renderForm = () => { @@ -150,7 +151,7 @@ function ScheduleFormPage() { {/* 카테고리 선택 */} { setSelectedCategory(id);