diff --git a/frontend/src/components/AdminDailyAttendanceCard.jsx b/frontend/src/components/AdminDailyAttendanceCard.jsx index 73b0b07..a50b646 100644 --- a/frontend/src/components/AdminDailyAttendanceCard.jsx +++ b/frontend/src/components/AdminDailyAttendanceCard.jsx @@ -24,8 +24,24 @@ const AdminDailyAttendanceCard = ({ date, studentId, onClose }) => { */ try { const rawData = await getStudentAttendance(studentId); - const dayData = rawData.data.find((d) => d.date === date); - const rawSlots = dayData?.slots || []; + /* + "attendanceId": 1, + "userId": 1, + "username": "홍길동", + "date": "2023-10-20", + "order": 1, + "status": true + */ + const dayData = rawData.find((d) => d.date === date); + const rawSlots = dayData + ? [ + { + id: dayData.attendanceId, // API 요청용 ID + order: dayData.order, // 회차 표시용 + status: dayData.status ? "SUCCESS" : "FAILURE", + }, + ] + : []; setSlots(rawSlots); setModified(Array(rawSlots.length).fill(false)); @@ -49,8 +65,12 @@ const AdminDailyAttendanceCard = ({ date, studentId, onClose }) => { const handleSave = async (idx) => { try { - const slot = slots[idx]; - await updateAttendanceStatus(studentId, slot.id, slot.status); + + const slot = slots[idx]; + const attendanceId = slot.id; + const status = slot.status === "SUCCESS"; + + await updateAttendanceStatus(studentId, attendanceId, status); const newModified = [...modified]; newModified[idx] = false; diff --git a/frontend/src/pages/admin/AdminStudentAttendance.jsx b/frontend/src/pages/admin/AdminStudentAttendance.jsx index 0030e5f..daffa99 100644 --- a/frontend/src/pages/admin/AdminStudentAttendance.jsx +++ b/frontend/src/pages/admin/AdminStudentAttendance.jsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import { useParams } from "react-router-dom"; import AdminStudentHeader from "../../components/AdminStudentHeader"; -import DailyAttendanceCard from "../../components/AdminDailyAttendanceCard"; +import AdminDailyAttendanceCard from "../../components/AdminDailyAttendanceCard"; import api from "../../api/api"; import styles from "./AdminStudentAttendance.module.css"; import AdminWeeklyAttendanceList from "../../components/AdminWeeklyAttendanceList"; @@ -75,7 +75,7 @@ const AdminStudentAttendance = () => { const weekSlotMap = new Map(); const dateMap = new Map(); // 추가: 날짜 저장 - rawData.forEach(({ date, order,status }) => { + rawData.forEach(({ date, order, status }) => { const week = getWeekFromDate(date); const statuses = status.map((s) => (s ? "SUCCESS" : "FAILURE")); const existing = weekSlotMap.get(week) || []; @@ -137,7 +137,7 @@ const AdminStudentAttendance = () => { {/* 선택된 날짜의 상세 수정 카드 */} {selectedDate && ( - setSelectedDate(null)}