Skip to content

Commit 7744276

Browse files
committed
feat : API에 프로젝트 이름 추가
1 parent 5ea7829 commit 7744276

File tree

4 files changed

+29
-18
lines changed

4 files changed

+29
-18
lines changed

src/components/evaluation/EvaluationContent.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import * as S from './EvaluationContent.styled';
22
import ScrollPreventor from '../common/modal/ScrollPreventor';
33
import useEvaluationStep from '../../hooks/evaluationHooks/useEvaluationStep';
4-
import { apiMemberList } from '../../models/evaluation';
4+
import { MemberList } from '../../models/evaluation';
55
import { optionLabels, questions } from '../../constants/evaluation';
6-
76
interface EvaluationContentProps {
87
projectId: number;
9-
memberList: apiMemberList[];
8+
projectName: string;
9+
memberList: MemberList[];
1010
}
1111

1212
const EvaluationContent = ({
1313
projectId,
14+
projectName,
1415
memberList,
1516
}: EvaluationContentProps) => {
1617
const {
@@ -27,7 +28,7 @@ const EvaluationContent = ({
2728
<ScrollPreventor>
2829
<S.Container>
2930
<S.SidebarLeft>
30-
<S.ProjectName>프로젝트 이름</S.ProjectName>
31+
<S.ProjectName>{projectName}</S.ProjectName>
3132
{notDone.map((name, idx) => (
3233
<S.ParticipantButton
3334
key={name.userId}
@@ -93,7 +94,9 @@ const EvaluationContent = ({
9394
{memberList
9495
.filter((memberData) => memberData.evaluated)
9596
.map((memberData) => (
96-
<S.CompletedButton>{memberData.nickname}</S.CompletedButton>
97+
<S.CompletedButton key={memberData.userId}>
98+
{memberData.nickname}
99+
</S.CompletedButton>
97100
))}
98101
</S.SidebarRight>
99102
</S.Container>

src/hooks/evaluationHooks/useEvaluationStep.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { useEffect, useMemo, useState } from 'react';
2-
import { apiMemberList } from '../../models/evaluation';
2+
import { MemberList } from '../../models/evaluation';
33
import { questions } from '../../constants/evaluation';
44
import { usePostEvaluation } from './usePostEvaluation';
55

66
interface useEvaluationStepProps {
77
projectId: number;
8-
memberList: apiMemberList[];
8+
memberList: MemberList[];
99
}
1010

1111
const useEvaluationStep = ({
@@ -14,12 +14,8 @@ const useEvaluationStep = ({
1414
}: useEvaluationStepProps) => {
1515
const questionLength = questions.length;
1616
const [step, setStep] = useState<number>(0);
17-
const [notDone, setNotDone] = useState<apiMemberList[]>([]);
18-
const [progress, setProgress] = useState<Record<number, number[]>[]>(() =>
19-
memberList.map((memberData) => ({
20-
[memberData.userId]: Array(questionLength).fill(0),
21-
}))
22-
);
17+
const [notDone, setNotDone] = useState<MemberList[]>([]);
18+
const [progress, setProgress] = useState<Record<number, number[]>[]>([]);
2319
const [isNotFill, setIsNotFill] = useState<boolean>(false);
2420

2521
const { createEvaluation } = usePostEvaluation(projectId);
@@ -75,7 +71,7 @@ const useEvaluationStep = ({
7571
createEvaluation({
7672
projectId: projectId,
7773
evaluateeId: user,
78-
score: scores,
74+
scores: scores,
7975
});
8076

8177
setNotDone((prev) => prev.filter((e) => e.userId !== user));

src/models/evaluation.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ export interface apiEvaluatedUser {
55
}
66

77
export interface apiMemberList {
8+
projectName: string;
9+
userData: MemberList[];
10+
}
11+
12+
export interface MemberList {
813
userId: number;
914
nickname: string;
1015
evaluated: boolean;

src/pages/evaluation/Evaluation.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,30 @@ import { useParams } from 'react-router-dom';
22
import * as S from './Evaluation.styled';
33
import useGetCompletedEvaluation from '../../hooks/evaluationHooks/useGetEvaluation';
44
import EvaluationContent from '../../components/evaluation/EvaluationContent';
5+
import LoadingSpinner from '../../components/common/loadingSpinner/LoadingSpinner';
56

67
const Evaluation = () => {
7-
const projectId = Number(useParams().projectId);
8+
const { projectId: projectIdParam } = useParams();
9+
const projectId = Number(projectIdParam);
10+
811
const { memberList, isLoading, isFetching } =
912
useGetCompletedEvaluation(projectId);
1013

1114
if (isLoading || isFetching) {
12-
return;
15+
return <LoadingSpinner />;
1316
}
1417

15-
if (!memberList) {
18+
if (!memberList.userData.length) {
1619
return <S.Container>평가할 멤버가 없습니다.</S.Container>;
1720
}
1821

1922
return (
2023
<S.Container>
21-
<EvaluationContent projectId={projectId} memberList={memberList!} />
24+
<EvaluationContent
25+
projectId={projectId}
26+
projectName={memberList.projectName}
27+
memberList={memberList.userData!}
28+
/>
2229
</S.Container>
2330
);
2431
};

0 commit comments

Comments
 (0)