Skip to content

Commit 8663cb5

Browse files
authored
feat: 성적명 표기 변환 추가, 지원시 대학목록 정렬 (#127)
* feat: 지원서 제출시 대학목록 정렬 * feat: 성적명 표기 변환 추가
1 parent 4d3b6e9 commit 8663cb5

4 files changed

Lines changed: 36 additions & 8 deletions

File tree

src/app/application/apply/LanguageStep.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import BlockBtn from "@/components/button/BlockBtn";
22
import Tab from "@/components/ui/Tab";
33

4-
import { LanguageTestScore } from "@/types/score";
4+
import { LanguageTestScore, languageTestMapping } from "@/types/score";
55

66
import ScoreCard from "@/app/score/ScoreCard";
77

@@ -31,7 +31,7 @@ const LanguageStep = ({
3131
>
3232
<ScoreCard
3333
key={score.id}
34-
name={score.languageTest.languageTestType}
34+
name={languageTestMapping[score.languageTest.languageTestType]}
3535
score={score.languageTest.languageTestScore}
3636
status={score.verifyStatus}
3737
// date={new Date(score.issueDate).toISOString()}

src/app/application/apply/page.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,21 @@ const ApplyPage = () => {
4343
(score: LanguageTestScore) => score.verifyStatus === "APPROVED",
4444
),
4545
);
46-
setUniversityList(universityRes.data);
46+
47+
// 대학명을 지역/나라, 대학명 가나다 순으로 정렬합니다
48+
const sortedUniversityList = [...universityRes.data].sort((a, b) => {
49+
// 1) region 비교
50+
const regionCompare = a.region.localeCompare(b.region);
51+
if (regionCompare !== 0) return regionCompare;
52+
53+
// 2) country 비교
54+
const countryCompare = a.country.localeCompare(b.country);
55+
if (countryCompare !== 0) return countryCompare;
56+
57+
// 3) 같은 region, country라면 대학명을 비교(가나다 순)
58+
return a.koreanName.localeCompare(b.koreanName);
59+
});
60+
setUniversityList(sortedUniversityList);
4761
} catch (err) {
4862
if (err.response) {
4963
console.error("Axios response error", err.response);

src/app/score/ScoreScreen.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@ import { useEffect, useState } from "react";
66
import { getMyGpaScoreApi, getMyLanguageTestScoreApi } from "@/services/score";
77

88
import BlockBtn from "@/components/button/BlockBtn";
9-
import Tab from "@/components/ui/Tab";
9+
import Tab from "@/components/ui/tab";
1010

1111
import ScoreCard from "./ScoreCard";
1212

13-
import { GpaScore, LanguageTestScore } from "@/types/score";
13+
import { GpaScore, LanguageTestScore, languageTestMapping } from "@/types/score";
1414

1515
const ScoreScreen = () => {
1616
const router = useRouter();
1717
const [curTab, setCurTab] = useState<"공인어학" | "학점">("공인어학");
1818
const [gpaScoreList, setGpaScoreList] = useState<GpaScore[]>([]);
1919
const [languageTestScoreList, setLanguageTestScoreList] = useState<LanguageTestScore[]>([]);
20-
const [curUniversityList, setCurUniversityList] = useState<number[]>([]);
2120

2221
useEffect(() => {
2322
const fetchGpaScoreList = async () => {
@@ -71,7 +70,7 @@ const ScoreScreen = () => {
7170
languageTestScoreList.map((score) => (
7271
<ScoreCard
7372
key={score.id}
74-
name={score.languageTest.languageTestType}
73+
name={languageTestMapping[score.languageTest.languageTestType]}
7574
score={score.languageTest.languageTestScore}
7675
status={score.verifyStatus}
7776
// date={new Date(score.issueDate).toISOString()}

src/types/score.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,21 @@ export enum LanguageTestEnum {
1414
DUOLINGO = "DUOLINGO",
1515
}
1616

17+
export const languageTestMapping: Record<LanguageTestEnum, string> = {
18+
TOEIC: "TOEIC",
19+
TOEFL_IBT: "TOEFL IBT",
20+
TOEFL_ITP: "TOEFL ITP",
21+
IELTS: "IELTS",
22+
JLPT: "JLPT",
23+
NEW_HSK: "NEW HSK",
24+
ETC: "기타",
25+
DALF: "DALF",
26+
CEFR: "CEFR",
27+
TCF: "TCF",
28+
TEF: "TEF",
29+
DUOLINGO: "DUOLINGO",
30+
};
31+
1732
export interface SubmitGpaScoreRequest {
1833
gpaScoreRequest: {
1934
gpa: number;
@@ -51,7 +66,7 @@ export interface MyGpaScoreResponse {
5166
export interface LanguageTestScore {
5267
id: number;
5368
languageTest: {
54-
languageTestType: string;
69+
languageTestType: LanguageTestEnum;
5570
languageTestScore: string;
5671
languageTestReportUrl: string;
5772
};

0 commit comments

Comments
 (0)