@edu-tosel/design 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +17 -0
- package/Dockerfile +16 -0
- package/LICENCE +19 -0
- package/README.md +20 -0
- package/docs/README.md +47 -0
- package/index.html +13 -0
- package/package.json +49 -28
- package/postcss.config.js +6 -0
- package/public/images/daeng.jpg +0 -0
- package/public/images/faker.jpg +0 -0
- package/public/images/haerin.png +0 -0
- package/public/images/haewon.png +0 -0
- package/public/images/hani.png +0 -0
- package/public/images/home/admin.png +0 -0
- package/public/images/home/dashboard.png +0 -0
- package/public/images/home/detection.png +0 -0
- package/public/images/home/homepage.png +0 -0
- package/public/images/home/olympiad.png +0 -0
- package/public/images/home/partner.png +0 -0
- package/public/images/home/report.png +0 -0
- package/public/images/home/space.png +0 -0
- package/public/images/home/sun.png +0 -0
- package/public/images/info.png +0 -0
- package/public/images/itc.png +0 -0
- package/public/images/jenkins.png +0 -0
- package/public/images/minji.png +0 -0
- package/public/images/seulgi.png +0 -0
- package/public/images/test-full.png +0 -0
- package/public/images/test-image.png +0 -0
- package/public/images/test-paper.png +0 -0
- package/public/images/tosel-blue-lab-spiral.png +0 -0
- package/public/images/tosel.png +0 -0
- package/public/images/yujin.png +0 -0
- package/public/videos/loading.gif +0 -0
- package/public/vite.svg +1 -0
- package/setupPackage.js +78 -0
- package/src/App.tsx +32 -0
- package/src/_components/asset/interface.ts +2 -0
- package/src/_components/asset/links.ts +17 -0
- package/src/_components/asset/mock/academies.ts +52 -0
- package/src/_components/asset/mock/chartData.ts +104 -0
- package/src/_components/asset/mock/exams.ts +42 -0
- package/src/_components/asset/mock/index.ts +2 -0
- package/src/_components/asset/mock/people.ts +291 -0
- package/src/_components/asset/mock/test.ts +67 -0
- package/src/_components/asset/navigation.ts +17 -0
- package/src/_components/asset/people.ts +226 -0
- package/src/_components/asset/planets.ts +49 -0
- package/src/_components/controller/store.ts +11 -0
- package/src/_components/hook/useRoute.ts +47 -0
- package/src/_components/hook/useTyping.ts +46 -0
- package/src/_components/types/Level.ts +1 -0
- package/src/_components/view/Explore.tsx +16 -0
- package/src/_components/view/Home.tsx +180 -0
- package/src/_components/view/LottiePlayer.tsx +17 -0
- package/src/app/admin/exam/page.tsx +36 -0
- package/src/app/admin/grade/page.tsx +5 -0
- package/src/app/admin/layout.tsx +56 -0
- package/src/app/admin/news/page.tsx +15 -0
- package/src/app/admin/page.tsx +42 -0
- package/src/app/admin/rnd/monthly-test/page.tsx +5 -0
- package/src/app/admin/rnd/page.tsx +17 -0
- package/src/app/admin/statistics/page.tsx +5 -0
- package/src/app/admin/user/page.tsx +147 -0
- package/src/app/agency/exam/page.tsx +5 -0
- package/src/app/agency/group/page.tsx +5 -0
- package/src/app/agency/layout.tsx +55 -0
- package/src/app/agency/page.tsx +68 -0
- package/src/app/agency/sales/page.tsx +5 -0
- package/src/app/convention/page.tsx +58 -0
- package/src/app/page.tsx +4 -0
- package/src/asset/fonts/Kostar.ttf +0 -0
- package/src/asset/fonts/Megrim.ttf +0 -0
- package/src/asset/fonts/NicoMoji.ttf +0 -0
- package/src/asset/fonts/Pretendard-Medium.otf +0 -0
- package/{board/index.d.ts → src/board/index.tsx} +4 -3
- package/src/board/template/CanvasBoard.tsx +17 -0
- package/src/board/template/ManageBoard.tsx +56 -0
- package/src/board/widget/Board.tsx +28 -0
- package/src/board/widget/DataField.tsx +70 -0
- package/src/board/widget/Header.tsx +63 -0
- package/src/board/widget/Tab.tsx +36 -0
- package/src/board/widget/Tags.tsx +81 -0
- package/{card/index.d.ts → src/card/index.tsx} +6 -5
- package/src/card/template/ChartCard.tsx +42 -0
- package/src/card/template/InfoCard.tsx +22 -0
- package/src/card/template/ProfileCard.tsx +36 -0
- package/src/card/template/RowCard.tsx +91 -0
- package/src/card/template/TableCard.tsx +41 -0
- package/src/card/template/TrumpCard.tsx +46 -0
- package/src/card/widget/Card.tsx +53 -0
- package/src/deck/Deck.tsx +46 -0
- package/{deck/index.d.ts → src/deck/index.tsx} +1 -1
- package/{index.d.ts → src/index.tsx} +11 -11
- package/src/interaction/Exception.tsx +10 -0
- package/src/interaction/LoadingSpinner.tsx +10 -0
- package/src/interaction/NoData.tsx +5 -0
- package/{interaction/index.d.ts → src/interaction/index.tsx} +2 -2
- package/src/interface/Board.ts +55 -0
- package/src/interface/Card.ts +66 -0
- package/src/interface/HTMLElement.ts +27 -0
- package/src/interface/Interaction.ts +4 -0
- package/src/interface/Menu.ts +5 -0
- package/src/interface/Modal.ts +19 -0
- package/{interface/Property.d.ts → src/interface/Property.ts} +46 -34
- package/src/interface/Widget.ts +4 -0
- package/{interface/index.d.ts → src/interface/index.ts} +3 -2
- package/src/layout/dashboard/Header.tsx +56 -0
- package/src/layout/dashboard/index.tsx +38 -0
- package/{layout/index.d.ts → src/layout/index.tsx} +1 -1
- package/src/main.tsx +10 -0
- package/src/menu/SideMenu.tsx +104 -0
- package/{menu/index.d.ts → src/menu/index.tsx} +1 -1
- package/src/modal/AlertModal.tsx +24 -0
- package/src/modal/ControllerModal.tsx +17 -0
- package/src/modal/Modal.tsx +66 -0
- package/src/modal/TestModal.tsx +19 -0
- package/{modal/index.d.ts → src/modal/index.tsx} +3 -3
- package/src/navigation/Navigation.tsx +37 -0
- package/{navigation/index.d.ts → src/navigation/index.tsx} +1 -1
- package/src/shelf/Shelf.tsx +3 -0
- package/{shelf/index.d.ts → src/shelf/index.tsx} +1 -1
- package/src/store/index.ts +66 -0
- package/src/text/LineBreaks.tsx +13 -0
- package/{text/index.d.ts → src/text/index.tsx} +1 -1
- package/src/util/classNames.ts +4 -0
- package/src/util/colors.ts +11 -0
- package/src/util/display.ts +31 -0
- package/src/util/displayResponsive.ts +17 -0
- package/{util/index.d.ts → src/util/index.ts} +7 -7
- package/src/util/pattern.ts +18 -0
- package/src/util/position.ts +43 -0
- package/src/util/shape.ts +3 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.build.json +42 -0
- package/tsconfig.json +28 -0
- package/tsconfig.node.json +10 -0
- package/vite.config.ts +10 -0
- package/board/index.js +0 -3
- package/board/template/CanvasBoard.d.ts +0 -2
- package/board/template/CanvasBoard.js +0 -10
- package/board/template/ManageBoard.d.ts +0 -4
- package/board/template/ManageBoard.js +0 -28
- package/board/widget/Board.d.ts +0 -2
- package/board/widget/Board.js +0 -16
- package/board/widget/DataField.d.ts +0 -6
- package/board/widget/DataField.js +0 -24
- package/board/widget/Header.d.ts +0 -2
- package/board/widget/Header.js +0 -22
- package/board/widget/Tab.d.ts +0 -4
- package/board/widget/Tab.js +0 -17
- package/board/widget/Tags.d.ts +0 -3
- package/board/widget/Tags.js +0 -30
- package/card/index.js +0 -5
- package/card/template/ChartCard.d.ts +0 -2
- package/card/template/ChartCard.js +0 -6
- package/card/template/ProfileCard.d.ts +0 -14
- package/card/template/ProfileCard.js +0 -8
- package/card/template/RowCard.d.ts +0 -5
- package/card/template/RowCard.js +0 -26
- package/card/template/TableCard.d.ts +0 -2
- package/card/template/TableCard.js +0 -12
- package/card/template/TrumpCard.d.ts +0 -2
- package/card/template/TrumpCard.js +0 -19
- package/card/widget/Card.d.ts +0 -2
- package/card/widget/Card.js +0 -45
- package/deck/Deck.d.ts +0 -16
- package/deck/Deck.js +0 -15
- package/deck/index.js +0 -1
- package/index.js +0 -11
- package/interaction/Exception.d.ts +0 -2
- package/interaction/Exception.js +0 -9
- package/interaction/LoadingSpinner.d.ts +0 -1
- package/interaction/LoadingSpinner.js +0 -5
- package/interaction/index.js +0 -2
- package/interface/Board.d.ts +0 -57
- package/interface/Board.js +0 -1
- package/interface/Card.d.ts +0 -73
- package/interface/Card.js +0 -1
- package/interface/HTMLElement.d.ts +0 -13
- package/interface/HTMLElement.js +0 -1
- package/interface/Interaction.d.ts +0 -5
- package/interface/Interaction.js +0 -1
- package/interface/Modal.d.ts +0 -18
- package/interface/Modal.js +0 -1
- package/interface/Property.js +0 -14
- package/interface/Widget.d.ts +0 -4
- package/interface/Widget.js +0 -1
- package/interface/index.js +0 -2
- package/layout/dashboard/Header.d.ts +0 -5
- package/layout/dashboard/Header.js +0 -19
- package/layout/dashboard/index.d.ts +0 -7
- package/layout/dashboard/index.js +0 -10
- package/layout/index.js +0 -1
- package/menu/SideMenu.d.ts +0 -1
- package/menu/SideMenu.js +0 -14
- package/menu/index.js +0 -1
- package/modal/AlertModal.d.ts +0 -2
- package/modal/AlertModal.js +0 -8
- package/modal/ControllerModal.d.ts +0 -6
- package/modal/ControllerModal.js +0 -6
- package/modal/Modal.d.ts +0 -2
- package/modal/Modal.js +0 -31
- package/modal/TestModal.d.ts +0 -8
- package/modal/TestModal.js +0 -6
- package/modal/index.js +0 -3
- package/navigation/Navigation.d.ts +0 -5
- package/navigation/Navigation.js +0 -24
- package/navigation/index.js +0 -1
- package/shelf/Shelf.d.ts +0 -4
- package/shelf/Shelf.js +0 -4
- package/shelf/index.js +0 -1
- package/store/index.d.ts +0 -16
- package/store/index.js +0 -39
- package/text/LineBreaks.d.ts +0 -4
- package/text/LineBreaks.js +0 -5
- package/text/index.js +0 -1
- package/util/classNames.d.ts +0 -1
- package/util/classNames.js +0 -4
- package/util/colors.d.ts +0 -10
- package/util/colors.js +0 -10
- package/util/display.d.ts +0 -25
- package/util/display.js +0 -25
- package/util/displayResponsive.d.ts +0 -3
- package/util/displayResponsive.js +0 -15
- package/util/index.js +0 -7
- package/util/pattern.d.ts +0 -7
- package/util/pattern.js +0 -15
- package/util/position.d.ts +0 -14
- package/util/position.js +0 -44
- package/util/shape.d.ts +0 -1
- package/util/shape.js +0 -3
- package/version.txt +0 -1
- /package/{asset → public}/fonts/Kostar.ttf +0 -0
- /package/{asset → public}/fonts/Megrim.ttf +0 -0
- /package/{asset → public}/fonts/NicoMoji.ttf +0 -0
- /package/{asset → public}/fonts/Pretendard-Medium.otf +0 -0
- /package/{asset → src/asset}/json/credit-lottie.json +0 -0
- /package/{asset → src/asset}/json/loading-lottie.json +0 -0
- /package/{asset → src/asset}/json/test.svg +0 -0
- /package/{globals.css → src/globals.css} +0 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { Level } from "../../types/Level";
|
|
2
|
+
|
|
3
|
+
export interface User {
|
|
4
|
+
id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
birthday: string;
|
|
7
|
+
level: Level;
|
|
8
|
+
phone: string;
|
|
9
|
+
}
|
|
10
|
+
export const users: User[] | undefined = [
|
|
11
|
+
{
|
|
12
|
+
id: 1,
|
|
13
|
+
name: "홍길동",
|
|
14
|
+
birthday: "1990-01-01",
|
|
15
|
+
level: "PS",
|
|
16
|
+
phone: "010-1234-5678",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 2,
|
|
20
|
+
name: "김토셀",
|
|
21
|
+
birthday: "1995-02-02",
|
|
22
|
+
level: "PS",
|
|
23
|
+
phone: "010-2345-6789",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 3,
|
|
27
|
+
name: "히토시스리키박주니어",
|
|
28
|
+
birthday: "2000-03-03",
|
|
29
|
+
level: "ST",
|
|
30
|
+
phone: "010-3456-7890",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 4,
|
|
34
|
+
name: "Jason Seo",
|
|
35
|
+
birthday: "2005-04-04",
|
|
36
|
+
level: "HJ",
|
|
37
|
+
phone: "010-4567-8901",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 5,
|
|
41
|
+
name: "최영미",
|
|
42
|
+
birthday: "2010-05-05",
|
|
43
|
+
level: "JR",
|
|
44
|
+
phone: "010-5678-9012",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 6,
|
|
48
|
+
name: "정영철",
|
|
49
|
+
birthday: "2015-06-06",
|
|
50
|
+
level: "BA",
|
|
51
|
+
phone: "010-6789-0123",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 7,
|
|
55
|
+
name: "이영희",
|
|
56
|
+
birthday: "2000-03-03",
|
|
57
|
+
level: "ST",
|
|
58
|
+
phone: "010-3456-7890",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 8,
|
|
62
|
+
name: "박영수",
|
|
63
|
+
birthday: "2005-04-04",
|
|
64
|
+
level: "HJ",
|
|
65
|
+
phone: "010-4567-8901",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 9,
|
|
69
|
+
name: "최영미",
|
|
70
|
+
birthday: "2010-05-05",
|
|
71
|
+
level: "JR",
|
|
72
|
+
phone: "010-5678-9012",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 10,
|
|
76
|
+
name: "Michael Jackson",
|
|
77
|
+
birthday: "2015-06-06",
|
|
78
|
+
level: "BA",
|
|
79
|
+
phone: "010-6789-0123",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 11,
|
|
83
|
+
name: "박명수",
|
|
84
|
+
birthday: "1995-07-03",
|
|
85
|
+
level: "HJ",
|
|
86
|
+
phone: "010-5921-3802",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 12,
|
|
90
|
+
name: "노홍철",
|
|
91
|
+
birthday: "1993-07-14",
|
|
92
|
+
level: "ST",
|
|
93
|
+
phone: "010-9454-2481",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: 13,
|
|
97
|
+
name: "김수현",
|
|
98
|
+
birthday: "1994-05-22",
|
|
99
|
+
level: "PS",
|
|
100
|
+
phone: "010-3214-6542",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 14,
|
|
104
|
+
name: "조세호",
|
|
105
|
+
birthday: "1992-02-19",
|
|
106
|
+
level: "JR",
|
|
107
|
+
phone: "010-5643-7890",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: 15,
|
|
111
|
+
name: "김신영",
|
|
112
|
+
birthday: "1996-08-05",
|
|
113
|
+
level: "BA",
|
|
114
|
+
phone: "010-4321-1987",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 16,
|
|
118
|
+
name: "안정환",
|
|
119
|
+
birthday: "1991-07-27",
|
|
120
|
+
level: "HJ",
|
|
121
|
+
phone: "010-7890-4563",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: 17,
|
|
125
|
+
name: "박세리",
|
|
126
|
+
birthday: "1993-03-01",
|
|
127
|
+
level: "ST",
|
|
128
|
+
phone: "010-2134-5467",
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 18,
|
|
132
|
+
name: "김연아",
|
|
133
|
+
birthday: "1994-09-05",
|
|
134
|
+
level: "JR",
|
|
135
|
+
phone: "010-6789-1234",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: 19,
|
|
139
|
+
name: "손나은",
|
|
140
|
+
birthday: "1995-10-10",
|
|
141
|
+
level: "PS",
|
|
142
|
+
phone: "010-9876-5432",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: 20,
|
|
146
|
+
name: "최강창민",
|
|
147
|
+
birthday: "1992-04-18",
|
|
148
|
+
level: "BA",
|
|
149
|
+
phone: "010-4567-8901",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: 21,
|
|
153
|
+
name: "윤아",
|
|
154
|
+
birthday: "1993-05-30",
|
|
155
|
+
level: "HJ",
|
|
156
|
+
phone: "010-1122-3344",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: 22,
|
|
160
|
+
name: "이광수",
|
|
161
|
+
birthday: "1991-07-14",
|
|
162
|
+
level: "ST",
|
|
163
|
+
phone: "010-2233-4455",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 23,
|
|
167
|
+
name: "김태호",
|
|
168
|
+
birthday: "1990-11-23",
|
|
169
|
+
level: "JR",
|
|
170
|
+
phone: "010-3344-5566",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: 24,
|
|
174
|
+
name: "박지성",
|
|
175
|
+
birthday: "1994-02-25",
|
|
176
|
+
level: "PS",
|
|
177
|
+
phone: "010-4455-6677",
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: 25,
|
|
181
|
+
name: "이승기",
|
|
182
|
+
birthday: "1992-01-13",
|
|
183
|
+
level: "BA",
|
|
184
|
+
phone: "010-5566-7788",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: 26,
|
|
188
|
+
name: "공유",
|
|
189
|
+
birthday: "1993-07-10",
|
|
190
|
+
level: "HJ",
|
|
191
|
+
phone: "010-6677-8899",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: 27,
|
|
195
|
+
name: "손흥민",
|
|
196
|
+
birthday: "1992-07-08",
|
|
197
|
+
level: "ST",
|
|
198
|
+
phone: "010-7788-9900",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: 28,
|
|
202
|
+
name: "이민호",
|
|
203
|
+
birthday: "1991-06-22",
|
|
204
|
+
level: "JR",
|
|
205
|
+
phone: "010-8899-0011",
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
id: 29,
|
|
209
|
+
name: "배수지",
|
|
210
|
+
birthday: "1994-10-10",
|
|
211
|
+
level: "PS",
|
|
212
|
+
phone: "010-9900-1122",
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 30,
|
|
216
|
+
name: "강다니엘",
|
|
217
|
+
birthday: "1996-12-10",
|
|
218
|
+
level: "BA",
|
|
219
|
+
phone: "010-0011-2233",
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: 31,
|
|
223
|
+
name: "진지희",
|
|
224
|
+
birthday: "1995-08-25",
|
|
225
|
+
level: "HJ",
|
|
226
|
+
phone: "010-1122-3344",
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
id: 32,
|
|
230
|
+
name: "이효리",
|
|
231
|
+
birthday: "1993-05-10",
|
|
232
|
+
level: "ST",
|
|
233
|
+
phone: "010-2233-4455",
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
id: 33,
|
|
237
|
+
name: "양세형",
|
|
238
|
+
birthday: "1991-08-09",
|
|
239
|
+
level: "JR",
|
|
240
|
+
phone: "010-3344-5566",
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
id: 34,
|
|
244
|
+
name: "정준하",
|
|
245
|
+
birthday: "1992-03-18",
|
|
246
|
+
level: "PS",
|
|
247
|
+
phone: "010-4455-6677",
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
id: 35,
|
|
251
|
+
name: "하하",
|
|
252
|
+
birthday: "1994-07-20",
|
|
253
|
+
level: "BA",
|
|
254
|
+
phone: "010-5566-7788",
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: 36,
|
|
258
|
+
name: "김종국",
|
|
259
|
+
birthday: "1995-04-25",
|
|
260
|
+
level: "HJ",
|
|
261
|
+
phone: "010-6677-8899",
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: 37,
|
|
265
|
+
name: "정형돈",
|
|
266
|
+
birthday: "1993-02-07",
|
|
267
|
+
level: "ST",
|
|
268
|
+
phone: "010-7788-9900",
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
id: 38,
|
|
272
|
+
name: "송민호",
|
|
273
|
+
birthday: "1994-03-30",
|
|
274
|
+
level: "JR",
|
|
275
|
+
phone: "010-8899-0011",
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 39,
|
|
279
|
+
name: "강호동",
|
|
280
|
+
birthday: "1991-06-11",
|
|
281
|
+
level: "PS",
|
|
282
|
+
phone: "010-9900-1122",
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
id: 40,
|
|
286
|
+
name: "유재석",
|
|
287
|
+
birthday: "1972-08-14",
|
|
288
|
+
level: "BA",
|
|
289
|
+
phone: "010-0011-2233",
|
|
290
|
+
},
|
|
291
|
+
];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { HTMLElementSetting } from "../../../interface";
|
|
2
|
+
import { Level } from "../../types/Level";
|
|
3
|
+
|
|
4
|
+
export interface User {
|
|
5
|
+
id: number;
|
|
6
|
+
name: string;
|
|
7
|
+
birthday: string;
|
|
8
|
+
level: Level;
|
|
9
|
+
phone: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const settings: HTMLElementSetting = {
|
|
13
|
+
id: {
|
|
14
|
+
label: "ID",
|
|
15
|
+
type: "input",
|
|
16
|
+
},
|
|
17
|
+
level: {
|
|
18
|
+
label: "레벨",
|
|
19
|
+
type: "select" as const,
|
|
20
|
+
options: [
|
|
21
|
+
["PS", "Pre-Starter"],
|
|
22
|
+
["ST", "Starter"],
|
|
23
|
+
["BA", "Basic"],
|
|
24
|
+
["JR", "Junior"],
|
|
25
|
+
["HJ", "High Junior"],
|
|
26
|
+
] as [string, string][],
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const users: User[] | undefined = [
|
|
31
|
+
{
|
|
32
|
+
id: 1,
|
|
33
|
+
name: "홍길동",
|
|
34
|
+
birthday: "1990-01-01",
|
|
35
|
+
level: "PS",
|
|
36
|
+
phone: "010-1234-5678",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 2,
|
|
40
|
+
name: "김토셀",
|
|
41
|
+
birthday: "1995-02-02",
|
|
42
|
+
level: "PS",
|
|
43
|
+
phone: "010-2345-6789",
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
interface UserLog {
|
|
48
|
+
id: number;
|
|
49
|
+
title: string;
|
|
50
|
+
paymentKey: string;
|
|
51
|
+
date: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const userLogs: UserLog[] | undefined = [
|
|
55
|
+
{
|
|
56
|
+
id: 1,
|
|
57
|
+
title: "정기시험 1회 응시",
|
|
58
|
+
paymentKey: "1234",
|
|
59
|
+
date: "2021-01-01",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 2,
|
|
63
|
+
title: "정기시험 2회 응시",
|
|
64
|
+
paymentKey: "2345",
|
|
65
|
+
date: "2021-02-01",
|
|
66
|
+
},
|
|
67
|
+
];
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
export const people = [
|
|
2
|
+
{
|
|
3
|
+
info: {
|
|
4
|
+
name: "이상혁",
|
|
5
|
+
birthday: "1996-05-07",
|
|
6
|
+
image: "/images/faker.jpg",
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
info: {
|
|
11
|
+
name: "젠킨스",
|
|
12
|
+
birthday: "1997-05-08",
|
|
13
|
+
image: "/images/jenkins.png",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
info: {
|
|
18
|
+
name: "댕댕이",
|
|
19
|
+
birthday: "2012-04-13",
|
|
20
|
+
image: "/images/daeng.jpg",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
info: {
|
|
25
|
+
name: "김민지",
|
|
26
|
+
birthday: "2004-05-07",
|
|
27
|
+
image: "/images/minji.png",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
info: {
|
|
32
|
+
name: "팜하니",
|
|
33
|
+
birthday: "2004-10-06",
|
|
34
|
+
image: "/images/hani.png",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
info: {
|
|
39
|
+
name: "오해원",
|
|
40
|
+
birthday: "2003-02-25",
|
|
41
|
+
image: "/images/haewon.png",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
info: {
|
|
46
|
+
name: "안유진",
|
|
47
|
+
birthday: "2003-09-01",
|
|
48
|
+
image: "/images/yujin.png",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
info: {
|
|
53
|
+
name: "강슬기",
|
|
54
|
+
birthday: "1994-02-10",
|
|
55
|
+
image: "/images/seulgi.png",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
info: {
|
|
60
|
+
name: "강해린",
|
|
61
|
+
birthday: "2006-05-15",
|
|
62
|
+
image: "/images/haerin.png",
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
info: {
|
|
67
|
+
name: "TOSEL",
|
|
68
|
+
birthday: "2006-05-15",
|
|
69
|
+
image: null,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
info: {
|
|
74
|
+
name: "TOSEL",
|
|
75
|
+
birthday: "2006-05-15",
|
|
76
|
+
image: null,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
info: {
|
|
81
|
+
name: "TOSEL",
|
|
82
|
+
birthday: "2006-05-15",
|
|
83
|
+
image: null,
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
info: {
|
|
88
|
+
name: "TOSEL",
|
|
89
|
+
birthday: "2006-05-15",
|
|
90
|
+
image: null,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
info: {
|
|
95
|
+
name: "TOSEL",
|
|
96
|
+
birthday: "2006-05-15",
|
|
97
|
+
image: null,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
info: {
|
|
102
|
+
name: "TOSEL",
|
|
103
|
+
birthday: "2006-05-15",
|
|
104
|
+
image: null,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
info: {
|
|
109
|
+
name: "TOSEL",
|
|
110
|
+
birthday: "2006-05-15",
|
|
111
|
+
image: null,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
info: {
|
|
116
|
+
name: "TOSEL",
|
|
117
|
+
birthday: "2006-05-15",
|
|
118
|
+
image: null,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
info: {
|
|
123
|
+
name: "TOSEL",
|
|
124
|
+
birthday: "2006-05-15",
|
|
125
|
+
image: null,
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
info: {
|
|
130
|
+
name: "TOSEL",
|
|
131
|
+
birthday: "2006-05-15",
|
|
132
|
+
image: null,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
info: {
|
|
137
|
+
name: "TOSEL",
|
|
138
|
+
birthday: "2006-05-15",
|
|
139
|
+
image: null,
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
info: {
|
|
144
|
+
name: "TOSEL",
|
|
145
|
+
birthday: "2006-05-15",
|
|
146
|
+
image: null,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
info: {
|
|
151
|
+
name: "TOSEL",
|
|
152
|
+
birthday: "2006-05-15",
|
|
153
|
+
image: null,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
info: {
|
|
158
|
+
name: "TOSEL",
|
|
159
|
+
birthday: "2006-05-15",
|
|
160
|
+
image: null,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
info: {
|
|
165
|
+
name: "TOSEL",
|
|
166
|
+
birthday: "2006-05-15",
|
|
167
|
+
image: null,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
info: {
|
|
172
|
+
name: "TOSEL",
|
|
173
|
+
birthday: "2006-05-15",
|
|
174
|
+
image: null,
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
info: {
|
|
179
|
+
name: "TOSEL",
|
|
180
|
+
birthday: "2006-05-15",
|
|
181
|
+
image: null,
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
info: {
|
|
186
|
+
name: "TOSEL",
|
|
187
|
+
birthday: "2006-05-15",
|
|
188
|
+
image: null,
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
info: {
|
|
193
|
+
name: "TOSEL",
|
|
194
|
+
birthday: "2006-05-15",
|
|
195
|
+
image: null,
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
info: {
|
|
200
|
+
name: "TOSEL",
|
|
201
|
+
birthday: "2006-05-15",
|
|
202
|
+
image: null,
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
info: {
|
|
207
|
+
name: "TOSEL",
|
|
208
|
+
birthday: "2006-05-15",
|
|
209
|
+
image: null,
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
info: {
|
|
214
|
+
name: "TOSEL",
|
|
215
|
+
birthday: "2006-05-15",
|
|
216
|
+
image: null,
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
info: {
|
|
221
|
+
name: "TOSEL",
|
|
222
|
+
birthday: "2006-05-15",
|
|
223
|
+
image: null,
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
];
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Planet } from "./interface";
|
|
2
|
+
|
|
3
|
+
export const planets: Record<Planet, Record<string, string>> = {
|
|
4
|
+
olympiad: {
|
|
5
|
+
title: "PROJECT: OLYMPIAD",
|
|
6
|
+
href: "https://olympiad.tosel.co.kr",
|
|
7
|
+
description: `
|
|
8
|
+
올림피아드는 IBT방식의 영어단어 경시대회 및 영어말하기 대회로 기획되었다.
|
|
9
|
+
브라우저에서 도입할 수 있는 치팅 방지 시스템을 개발하였다.
|
|
10
|
+
또한, 영어말하기 대회에서는 녹음을 통해 음성을 전송할 예정이다.
|
|
11
|
+
|
|
12
|
+
올림피아드를 참고하여 토셀 IBT 시험도 개발될 예정이다.
|
|
13
|
+
`,
|
|
14
|
+
},
|
|
15
|
+
admin: {
|
|
16
|
+
title: "PROJECT: ADMIN",
|
|
17
|
+
href: "/admin",
|
|
18
|
+
description: `
|
|
19
|
+
와썹폐기
|
|
20
|
+
`,
|
|
21
|
+
},
|
|
22
|
+
partner: {
|
|
23
|
+
title: "PROJECT: PARTNER",
|
|
24
|
+
href: "/partner",
|
|
25
|
+
description: `
|
|
26
|
+
지본용
|
|
27
|
+
`,
|
|
28
|
+
},
|
|
29
|
+
report: {
|
|
30
|
+
title: "PROJECT: REPORT",
|
|
31
|
+
href: "/report",
|
|
32
|
+
description: `
|
|
33
|
+
기존의 성적 분석 자료 및 성적표를 대체할 새로운 성적 분석 자료로 기획되었다.
|
|
34
|
+
온라인 친화적인 웹뷰와 함께, 다양한 기능을 제공할 것이다.
|
|
35
|
+
또한, 기존의 출력물을 대체할 수 있도록, 다양한 출력물을 제공할 것이다.
|
|
36
|
+
|
|
37
|
+
성적표 프로젝트를 진행하면서 성적 처리 시스템도 보완하였다.
|
|
38
|
+
`,
|
|
39
|
+
},
|
|
40
|
+
homepage: {
|
|
41
|
+
title: "PROJECT: HOMEPAGE (NEW)",
|
|
42
|
+
href: "/homepage",
|
|
43
|
+
description: `
|
|
44
|
+
TOSEL의 신규사이트이다.
|
|
45
|
+
기존의 사이트는 불필요한 정보가 많아서 사용자가 원하는 정보를 찾기 어려웠다.
|
|
46
|
+
이를 개선하기 위해 새로운 사이트를 기획하였다.
|
|
47
|
+
`,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { useState, useEffect, ComponentType } from "react";
|
|
2
|
+
|
|
3
|
+
type PageComponent = ComponentType<any>;
|
|
4
|
+
|
|
5
|
+
type RouteItem = {
|
|
6
|
+
path: string;
|
|
7
|
+
component: PageComponent;
|
|
8
|
+
layout: PageComponent | null;
|
|
9
|
+
};
|
|
10
|
+
const LAYOUTS = import.meta.glob("/src/app/**/layout.tsx") as Record<
|
|
11
|
+
string,
|
|
12
|
+
() => Promise<{ default: PageComponent }>
|
|
13
|
+
>;
|
|
14
|
+
const COMPONENTS = import.meta.glob("/src/app/**/[a-z[]*.tsx") as Record<
|
|
15
|
+
string,
|
|
16
|
+
() => Promise<{ default: PageComponent }>
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
export default function useRoute() {
|
|
20
|
+
const [routes, setRoutes] = useState<RouteItem[]>([]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const loadRoutes = async () => {
|
|
23
|
+
const routeItems: RouteItem[] = await Promise.all(
|
|
24
|
+
Object.keys(COMPONENTS).map(async (key) => {
|
|
25
|
+
const path = key
|
|
26
|
+
.replace(/\/src\/app|page|\.tsx$/g, "")
|
|
27
|
+
.replace(/\[\.{3}.+\]/, "*")
|
|
28
|
+
.replace(/\[(.+)\]/, ":$1");
|
|
29
|
+
const Component = (await COMPONENTS[key]()).default;
|
|
30
|
+
const layoutPath = Object.keys(LAYOUTS).find((layoutKey) =>
|
|
31
|
+
key.startsWith(layoutKey.replace(/layout.tsx$/, ""))
|
|
32
|
+
);
|
|
33
|
+
const Layout = layoutPath
|
|
34
|
+
? (await LAYOUTS[layoutPath]()).default
|
|
35
|
+
: null;
|
|
36
|
+
|
|
37
|
+
return { path, component: Component, layout: Layout };
|
|
38
|
+
})
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
setRoutes(routeItems);
|
|
42
|
+
};
|
|
43
|
+
loadRoutes();
|
|
44
|
+
}, []);
|
|
45
|
+
|
|
46
|
+
return routes;
|
|
47
|
+
}
|