Skip to content

Commit 93fd469

Browse files
committed
Merge branch 'develop'
2 parents 1be6221 + 03c5232 commit 93fd469

File tree

2 files changed

+44
-4
lines changed

2 files changed

+44
-4
lines changed

src/pages/selfStudyCheck/index.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useGetAttendanceStatus } from '@/apis/attendance';
22
import Dropdown from '@/components/dropdown';
33
import { Layout } from '@/components/layout';
44
import ClassList from '@/components/list/class';
5+
import useDropdownInformation from '@/stores/useDropdown';
56
import { theme } from '@/styles/theme';
67
import { getWeekDay } from '@/utils/date';
78
import { NotAllClassOption, NotAllGradeOption } from '@/utils/dropdown';
@@ -12,19 +13,30 @@ import { styled } from 'styled-components';
1213
export const SelfStudyCheck = () => {
1314
const period = ['8교시', '9교시', '10교시'];
1415
const fullperiod = ['6교시', '7교시', '8교시', '9교시', '10교시'];
15-
const [selectedGrade, setSelectedGrade] = useState<number>(1);
16-
const [selectedClass, setSelectedClass] = useState<number>(1);
16+
const { dropdownInfo, setDropdownInfo } = useDropdownInformation();
17+
const [selectedGrade, setSelectedGrade] = useState<number>(dropdownInfo?.grade || 1);
18+
const [selectedClass, setSelectedClass] = useState<number>(dropdownInfo?.class_num || 1);
1719
const { data: attendanceData } = useGetAttendanceStatus(
1820
selectedGrade,
1921
selectedClass,
2022
);
2123

2224
const handleGradeChange = (option: number | string) => {
23-
setSelectedGrade(Number(option));
25+
const grade = Number(option)
26+
setSelectedGrade(grade)
27+
setDropdownInfo({
28+
grade: grade,
29+
class_num: selectedClass,
30+
});
2431
};
2532

2633
const handleClassChange = (option: number | string) => {
27-
setSelectedClass(Number(option));
34+
const classNum = Number(option)
35+
setSelectedClass(classNum)
36+
setDropdownInfo({
37+
grade: selectedGrade,
38+
class_num: classNum,
39+
});
2840
};
2941
return (
3042
<Layout

src/stores/useDropdown.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { create } from "zustand";
2+
import { persist } from "zustand/middleware";
3+
4+
interface dropdownInfo {
5+
dropdownInfo: {
6+
grade: number;
7+
class_num: number;
8+
} | null;
9+
setDropdownInfo: (info: {
10+
grade: number;
11+
class_num: number;
12+
}) => void;
13+
}
14+
15+
const useDropdownInformation = create(
16+
persist<dropdownInfo>(
17+
(set) => ({
18+
dropdownInfo: null,
19+
setDropdownInfo: (info) => set({ dropdownInfo: info }),
20+
}),
21+
{
22+
name: "dropdownInfo",
23+
getStorage: () => localStorage,
24+
}
25+
)
26+
);
27+
28+
export default useDropdownInformation;

0 commit comments

Comments
 (0)