From 387d95e1d3f2d9653160f48150d2685a9a72fc18 Mon Sep 17 00:00:00 2001 From: manNomi Date: Sun, 1 Mar 2026 23:24:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=96=B4=ED=95=99=20=EC=84=B1?= =?UTF-8?q?=EC=A0=81=20=EC=A0=90=EC=88=98=20=ED=91=9C=EA=B8=B0=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=EC=A0=90=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/app/university/score/ScoreCard.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/web/src/app/university/score/ScoreCard.tsx b/apps/web/src/app/university/score/ScoreCard.tsx index 5fb996dc..48ffdeb9 100644 --- a/apps/web/src/app/university/score/ScoreCard.tsx +++ b/apps/web/src/app/university/score/ScoreCard.tsx @@ -20,6 +20,8 @@ const formatDate = (date: string) => { return `${year}.${month}.${day}`; }; +const formatScore = (score: string) => score.replace(/(\d+)\.0+\b/g, "$1"); + const getStatus = (status: ScoreSubmitStatus, rejectedReason?: string | null) => { switch (status) { case "PENDING": @@ -54,6 +56,7 @@ const getStatus = (status: ScoreSubmitStatus, rejectedReason?: string | null) => const ScoreCard = ({ name, score, status, date, isFocused = false, rejectedReason = null }: ScoreCardProps) => { const isVerified = status === "APPROVED"; + const formattedScore = formatScore(score); return (
- {score} + {formattedScore}
From a91a87f2a4559a571ff307f43f52c209de97394b Mon Sep 17 00:00:00 2001 From: manNomi Date: Mon, 2 Mar 2026 03:14:29 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EC=8B=9C=ED=97=98=20=EC=9C=A0?= =?UTF-8?q?=ED=98=95=EB=B3=84=20=EC=96=B4=ED=95=99=20=EC=A0=90=EC=88=98=20?= =?UTF-8?q?=ED=91=9C=EA=B8=B0=20=EA=B7=9C=EC=B9=99=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/university/application/ScoreSheet.tsx | 8 +++--- .../src/app/university/score/ScoreCard.tsx | 5 +--- .../src/app/university/score/ScoreScreen.tsx | 7 +++-- apps/web/src/types/score.ts | 26 ++++++++++++++++++- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/apps/web/src/app/university/application/ScoreSheet.tsx b/apps/web/src/app/university/application/ScoreSheet.tsx index 74748588..d568cdce 100644 --- a/apps/web/src/app/university/application/ScoreSheet.tsx +++ b/apps/web/src/app/university/application/ScoreSheet.tsx @@ -1,7 +1,7 @@ import { useState } from "react"; import { IconExpandMoreFilled } from "@/public/svgs/community"; import type { ScoreSheet as ScoreSheetType } from "@/types/application"; -import { languageTestMapping } from "@/types/score"; +import { formatLanguageTestScore, isLanguageTestEnum, languageTestMapping } from "@/types/score"; const ScoreSheet = ({ scoreSheet }: { scoreSheet: ScoreSheetType }) => { const [tableOpened, setTableOpened] = useState(false); @@ -32,10 +32,12 @@ const ScoreSheet = ({ scoreSheet }: { scoreSheet: ScoreSheetType }) => { {applicant.gpa.toFixed(2)} - {languageTestMapping[applicant.testType]} + {isLanguageTestEnum(applicant.testType) ? languageTestMapping[applicant.testType] : applicant.testType} - {applicant.testScore} + {isLanguageTestEnum(applicant.testType) + ? formatLanguageTestScore(applicant.testType, applicant.testScore) + : applicant.testScore} ))} diff --git a/apps/web/src/app/university/score/ScoreCard.tsx b/apps/web/src/app/university/score/ScoreCard.tsx index 48ffdeb9..5fb996dc 100644 --- a/apps/web/src/app/university/score/ScoreCard.tsx +++ b/apps/web/src/app/university/score/ScoreCard.tsx @@ -20,8 +20,6 @@ const formatDate = (date: string) => { return `${year}.${month}.${day}`; }; -const formatScore = (score: string) => score.replace(/(\d+)\.0+\b/g, "$1"); - const getStatus = (status: ScoreSubmitStatus, rejectedReason?: string | null) => { switch (status) { case "PENDING": @@ -56,7 +54,6 @@ const getStatus = (status: ScoreSubmitStatus, rejectedReason?: string | null) => const ScoreCard = ({ name, score, status, date, isFocused = false, rejectedReason = null }: ScoreCardProps) => { const isVerified = status === "APPROVED"; - const formattedScore = formatScore(score); return (
- {formattedScore} + {score}
diff --git a/apps/web/src/app/university/score/ScoreScreen.tsx b/apps/web/src/app/university/score/ScoreScreen.tsx index 5db00301..e948bcc7 100644 --- a/apps/web/src/app/university/score/ScoreScreen.tsx +++ b/apps/web/src/app/university/score/ScoreScreen.tsx @@ -6,7 +6,7 @@ import { useGetMyGpaScore, useGetMyLanguageTestScore } from "@/apis/Scores"; import BlockBtn from "@/components/button/BlockBtn"; import Tab from "@/components/ui/Tab"; import { IconSolidConnectionSmallLogo } from "@/public/svgs/my"; -import { languageTestMapping } from "@/types/score"; +import { formatLanguageTestScore, languageTestMapping } from "@/types/score"; import ScoreCard from "./ScoreCard"; const ScoreScreen = () => { @@ -36,7 +36,10 @@ const ScoreScreen = () => { = { "5": "N5", }; +const integerScoreTestTypes = new Set([ + LanguageTestEnum.TOEIC, + LanguageTestEnum.TOEFL_IBT, + LanguageTestEnum.TOEFL_ITP, + LanguageTestEnum.DUOLINGO, + LanguageTestEnum.TCF, + LanguageTestEnum.TEF, + LanguageTestEnum.NEW_HSK, +]); + +const trailingZeroPattern = /^-?\d+\.0+$/; + +export const isLanguageTestEnum = (value: string): value is LanguageTestEnum => { + return value in languageTestScoreInfo; +}; + export const formatLanguageTestScore = (testType: LanguageTestEnum, score: string) => { if (testType === LanguageTestEnum.JLPT) { return jlptLevelMapping[score] ?? score; } - return score; + if (!integerScoreTestTypes.has(testType)) { + return score; + } + + if (!trailingZeroPattern.test(score)) { + return score; + } + + return score.replace(/\.0+$/, ""); }; export const formatLanguageTestScoreWithMax = (testType: LanguageTestEnum, score: string) => {