diff --git a/frontend/src/pages/curriculum/CurriculumPage.js b/frontend/src/pages/curriculum/CurriculumPage.js index e65f1ce..400fcbe 100644 --- a/frontend/src/pages/curriculum/CurriculumPage.js +++ b/frontend/src/pages/curriculum/CurriculumPage.js @@ -132,6 +132,7 @@ function AdminSessionCard({ day, onEdit, onDelete }) { // ── 운영진 세션 생성/수정 폼 ────────────────────────── function SessionForm({ day, week, onClose, onSave }) { const isEdit = !!day; + const [errors, setErrors] = useState({}); const [form, setForm] = useState({ week: day?.week || week || 1, sessionDate: day?.sessionDate || '', @@ -164,6 +165,13 @@ function SessionForm({ day, week, onClose, onSave }) { }; const handleSave = async () => { + const newErrors = {}; + if (!form.sessionDate) newErrors.sessionDate = '날짜를 입력해주세요.'; + if (!form.amTitle) newErrors.amTitle = '오전 세션 제목을 입력해주세요.'; + if (!form.pmTitle) newErrors.pmTitle = '오후 세션 제목을 입력해주세요.'; + if (Object.keys(newErrors).length > 0) { setErrors(newErrors); return; } + setErrors({}); + const body = { generation: Number(form.generation), week: Number(form.week), @@ -235,9 +243,10 @@ function SessionForm({ day, week, onClose, onSave }) { readOnly />
- + setForm({ ...form, sessionDate: e.target.value })} /> + {errors.sessionDate &&

{errors.sessionDate}

}
@@ -256,7 +265,7 @@ function SessionForm({ day, week, onClose, onSave }) {
-
setForm({ ...form, amTitle: e.target.value })} />
+
setForm({ ...form, amTitle: e.target.value })} />{errors.amTitle &&

{errors.amTitle}

}
setForm({ ...form, amHost: e.target.value })} />
setForm({ ...form, amMaterialName: e.target.value })} />
setForm({ ...form, amMaterialUrl: e.target.value })} />
@@ -279,7 +288,7 @@ function SessionForm({ day, week, onClose, onSave }) {
-
setForm({ ...form, pmTitle: e.target.value })} />
+
setForm({ ...form, pmTitle: e.target.value })} />{errors.pmTitle &&

{errors.pmTitle}

}
setForm({ ...form, pmHost: e.target.value })} />
setForm({ ...form, pmMaterialName: e.target.value })} />
setForm({ ...form, pmMaterialUrl: e.target.value })} />
diff --git a/frontend/src/pages/curriculum/CurriculumPage.module.css b/frontend/src/pages/curriculum/CurriculumPage.module.css index 57633ed..de1c60c 100644 --- a/frontend/src/pages/curriculum/CurriculumPage.module.css +++ b/frontend/src/pages/curriculum/CurriculumPage.module.css @@ -434,6 +434,17 @@ .formInput:focus { border-color: var(--dark); } +.required { + color: #e53e3e; +} + +.errorMsg { + font-family: var(--font-main); + font-size: 0.78rem; + color: #e53e3e; + margin: 3px 0 0 2px; +} + .saveFormBtn { width: 40%; margin: 30px auto 0;