Skip to content

Commit 94185ad

Browse files
committed
chore(meister): meister page 전역 state로 변경
1 parent b5441c9 commit 94185ad

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

src/templates/meister/layouts/Ranking.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from "react";
22
import styled from "styled-components";
33
import { Category } from "@/components/atoms";
4+
import { useDidMountEffect } from "@/hooks";
45
import { flex, font } from "@/styles";
56
import { useUser } from "@/@user/hooks";
67
import { useMeisterRankingQuery } from "../services/query.service";
@@ -12,9 +13,10 @@ const Ranking = () => {
1213
const [currentGrade, setCurrentGrade] = React.useState(user.grade);
1314
const { data, isSuccess, refetch } = useMeisterRankingQuery(currentGrade);
1415

15-
React.useEffect(() => {
16+
useDidMountEffect(() => {
1617
refetch();
17-
}, [currentGrade, refetch]);
18+
// eslint-disable-next-line
19+
}, [currentGrade]);
1820

1921
return (
2022
<Container>

src/templates/meister/layouts/RankingListItem.tsx

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import styled from "styled-components";
22
import { Column, Row } from "@/components/Flex";
33
import { theme, font, flex } from "@/styles";
4+
import { useSetAtom } from "jotai";
5+
import { studentNumberContext, buttonSwitchContext } from "../context";
6+
import { getStudentId } from "../helpers";
47

58
interface MeisterProfileBoxProps {
69
score: number;
@@ -22,24 +25,31 @@ const RankingListItem = ({
2225
negativePoint,
2326
index,
2427
}: MeisterProfileBoxProps) => {
28+
const { grade, classNo, studentNo } = student;
29+
const setStudentNum = useSetAtom(studentNumberContext);
30+
const setSwitch = useSetAtom(buttonSwitchContext);
31+
32+
const handleContainerButtonClick = () => {
33+
setStudentNum(getStudentId(grade, classNo, studentNo));
34+
setSwitch(true);
35+
};
36+
2537
return (
26-
<Container>
38+
<Container onClick={handleContainerButtonClick}>
2739
<RankText>{index}</RankText>
2840
<Column>
2941
<Row alignItems="center" gap="5px">
3042
<Department>
31-
{student.grade >= 2 ? (
32-
<span>
33-
{student.classNo <= 2 ? "소프트웨어" : "임베디드소프트웨어"}
34-
</span>
43+
{grade >= 2 ? (
44+
<span>{classNo <= 2 ? "소프트웨어" : "임베디드소프트웨어"}</span>
3545
) : (
3646
"통합"
3747
)}
3848
개발과
3949
</Department>
40-
<Grade>{student.grade}학년</Grade>
41-
<ClassNo>{student.classNo}</ClassNo>
42-
<StudentNo>{student.studentNo}</StudentNo>
50+
<Grade>{grade}학년</Grade>
51+
<ClassNo>{classNo}</ClassNo>
52+
<StudentNo>{studentNo}</StudentNo>
4353
<Name>{student.name}</Name>
4454
</Row>
4555
<MeisterPoint>마이스터역량인증제 점수 ㆍ {score}</MeisterPoint>
@@ -60,6 +70,7 @@ const Container = styled.div`
6070
display: flex;
6171
align-items: center;
6272
gap: 18px;
73+
cursor: pointer;
6374
`;
6475

6576
const RankText = styled.div`

0 commit comments

Comments
 (0)