From 303a723da7da45321e7e086c4b9fa17bc7bef13e Mon Sep 17 00:00:00 2001 From: manNomi Date: Wed, 1 Jul 2026 20:18:34 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=8C=80=ED=95=99=20=EC=83=81=EC=84=B8?= =?UTF-8?q?=20=EC=96=B4=ED=95=99=20=EB=A1=9C=EA=B3=A0=20=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/university-web/next.config.mjs | 8 +++ .../university-web/src/utils/languageUtils.ts | 52 +++++++++++++------ 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/apps/university-web/next.config.mjs b/apps/university-web/next.config.mjs index 062a5609..107e2fed 100644 --- a/apps/university-web/next.config.mjs +++ b/apps/university-web/next.config.mjs @@ -63,6 +63,14 @@ const nextConfig = { typescript: { ignoreBuildErrors: true, }, + async rewrites() { + return [ + { + source: "/university-static/images/language/:path*", + destination: "/images/language/:path*", + }, + ]; + }, ...(shouldRunBundleAnalyzer ? { webpack: (config) => { diff --git a/apps/university-web/src/utils/languageUtils.ts b/apps/university-web/src/utils/languageUtils.ts index 595c63c8..84a28539 100644 --- a/apps/university-web/src/utils/languageUtils.ts +++ b/apps/university-web/src/utils/languageUtils.ts @@ -1,27 +1,47 @@ -export const DEFAULT_LANGUAGE_TEST_LOGO_SRC = "/images/language/default.png"; +const LANGUAGE_TEST_LOGO_BASE_PATH = "/university-static/images/language"; + +export const DEFAULT_LANGUAGE_TEST_LOGO_SRC = `${LANGUAGE_TEST_LOGO_BASE_PATH}/default.png`; export const logoMap = { - TOEIC: "/images/language/toeic.png", - TOEFL_IBT: "/images/language/toefl_ibt.png", - TOEFL_ITP: "/images/language/toefl_itp.png", - IELTS: "/images/language/ielts.png", - JLPT: "/images/language/jlpt.png", - NEW_HSK: "/images/language/new_hsk.png", - ETC: "/images/language/etc.png", - DALF: "/images/language/dalf.png", - DELF: "/images/language/delf.jpg", - CEFR: "/images/language/cefr.png", - TCF: "/images/language/tcf.png", - TEF: "/images/language/tef.png", - DUOLINGO: "/images/language/duolingo.svg", + TOEIC: `${LANGUAGE_TEST_LOGO_BASE_PATH}/toeic.png`, + TOEFL_IBT: `${LANGUAGE_TEST_LOGO_BASE_PATH}/toefl_ibt.png`, + TOEFL_ITP: `${LANGUAGE_TEST_LOGO_BASE_PATH}/toefl_itp.png`, + IELTS: `${LANGUAGE_TEST_LOGO_BASE_PATH}/ielts.png`, + JLPT: `${LANGUAGE_TEST_LOGO_BASE_PATH}/jlpt.png`, + NEW_HSK: `${LANGUAGE_TEST_LOGO_BASE_PATH}/new_hsk.png`, + ETC: `${LANGUAGE_TEST_LOGO_BASE_PATH}/etc.png`, + DALF: `${LANGUAGE_TEST_LOGO_BASE_PATH}/dalf.png`, + DELF: `${LANGUAGE_TEST_LOGO_BASE_PATH}/delf.jpg`, + CEFR: `${LANGUAGE_TEST_LOGO_BASE_PATH}/cefr.png`, + TCF: `${LANGUAGE_TEST_LOGO_BASE_PATH}/tcf.png`, + TEF: `${LANGUAGE_TEST_LOGO_BASE_PATH}/tef.png`, + DUOLINGO: `${LANGUAGE_TEST_LOGO_BASE_PATH}/duolingo.svg`, } as const; type LanguageTestLogoType = keyof typeof logoMap; +const languageTestLogoAliases: Record = { + HSK: "NEW_HSK", + DUOLINGO_ENGLISH_TEST: "DUOLINGO", +}; + +const normalizeLanguageTestLogoType = (type: string): LanguageTestLogoType | undefined => { + const normalizedType = type + .trim() + .toUpperCase() + .replace(/[./]/g, "") + .replace(/[\s-]+/g, "_"); + const logoType = languageTestLogoAliases[normalizedType] ?? normalizedType; + + return logoType in logoMap ? (logoType as LanguageTestLogoType) : undefined; +}; + export const getLanguageTestLogo = (type: string): string => { - return type in logoMap ? logoMap[type as LanguageTestLogoType] : DEFAULT_LANGUAGE_TEST_LOGO_SRC; + const logoType = normalizeLanguageTestLogoType(type); + + return logoType ? logoMap[logoType] : DEFAULT_LANGUAGE_TEST_LOGO_SRC; }; export const formatLanguageTestName = (type: string): string => { - return type.replace(/_/g, " "); + return type.trim().replace(/_/g, " "); };