diff --git a/src/api/getAdminUser.tsx b/src/api/getAdminUser.tsx index 19a1a3a4..f8fc17fa 100644 --- a/src/api/getAdminUser.tsx +++ b/src/api/getAdminUser.tsx @@ -7,11 +7,12 @@ export const getAllUsers = async (orderBy = 'NAME_ASCENDING') => { const accessToken = localStorage.getItem('accessToken'); const refreshToken = localStorage.getItem('refreshToken'); - return axios.get(`${BASE_URL}/api/v1/admin/users/all?orderBy=${orderBy}`, { + return axios.get(`${BASE_URL}/api/v1/admin/users/all`, { headers: { Authorization: `Bearer ${accessToken}`, Authorization_refresh: `Bearer ${refreshToken}`, }, + params: { orderBy }, }); }; diff --git a/src/components/Admin/Modal/MemberDetailModal.tsx b/src/components/Admin/Modal/MemberDetailModal.tsx index acf10311..69ad95ab 100644 --- a/src/components/Admin/Modal/MemberDetailModal.tsx +++ b/src/components/Admin/Modal/MemberDetailModal.tsx @@ -71,8 +71,8 @@ const DataFlex = styled.div` color: #000; `; -const getHighestCardinal = (cardinal: string): string => - `${cardinal.split('.')[0]}기`; +const getHighestCardinal = (cardinals: string): string => + `${cardinals.split('.')[0]}기`; const MemberDetailModal: React.FC = ({ data, @@ -106,19 +106,19 @@ const MemberDetailModal: React.FC = ({ const memberInfo = [ { label: '직급', value: data.position }, { label: '역할', value: data.role }, - { label: '학과', value: data.major }, - { label: '전화번호', value: data.phone }, + { label: '학과', value: data.department }, + { label: '전화번호', value: data.tel }, { label: '학번', value: data.studentId }, { label: '이메일', value: data.email }, ]; const activityInfo = [ - { label: '활동기수', value: data.cardinal }, + { label: '활동기수', value: data.cardinals }, { label: '상태', value: data.membershipType }, - { label: '가입일', value: data.joinDate }, - { label: '출석', value: data.attendance }, - { label: '결석', value: data.absence }, - { label: '패널티', value: data.penalty }, + { label: '가입일', value: data.createdAt }, + { label: '출석', value: data.attendanceCount }, + { label: '결석', value: data.absenceCount }, + { label: '패널티', value: data.penaltyCount }, ]; return ( @@ -136,7 +136,7 @@ const MemberDetailModal: React.FC = ({ {data.name}   - {getHighestCardinal(data.cardinal)} + {getHighestCardinal(data.cardinals)} diff --git a/src/components/Admin/context/MemberContext.tsx b/src/components/Admin/context/MemberContext.tsx index f4988cfe..fde360f3 100644 --- a/src/components/Admin/context/MemberContext.tsx +++ b/src/components/Admin/context/MemberContext.tsx @@ -15,9 +15,9 @@ export type MemberData = { absenceCount: number; penaltyCount: number; LatestPenalty?: string; - createAt: string; + createdAt: string; email?: string; - membershipType?: string; + membershipType?: '활동 중' | '알럼나이'; }; interface MemberContextProps { @@ -57,8 +57,22 @@ export const MemberProvider: React.FC<{ children: React.ReactNode }> = ({ const response = await getAllUsers(sortingOrder); const fetchedMembers = response.data.data || []; console.log('API응답: ', response.data); - setMembers(fetchedMembers); - setFilteredMembers(fetchedMembers); + const mappedMembers = fetchedMembers.map((user: any) => ({ + ...user, + cardinals: user.cardinals.length > 0 ? user.cardinals.join('.') : '', + status: + user.status === 'ACTIVE' + ? '승인 완료' + : user.status === 'WAITING' + ? '대기 중' + : '추방', + createdAt: new Date(user.createdAt) + .toISOString() + .split('T')[0] + .replace(/-/g, '.'), + })); + setMembers(mappedMembers); + setFilteredMembers(mappedMembers); setError(null); } catch (err: any) { setError(err.response?.data?.message || '데이터 불러오기 실패'); @@ -75,6 +89,8 @@ export const MemberProvider: React.FC<{ children: React.ReactNode }> = ({ setSelectedMembers, filteredMembers, setFilteredMembers, + sortingOrder, + setSortingOrder, }), [members, selectedMembers, filteredMembers, error], );