From 50190331ae21db728f54c62bf13eeeb252065ea5 Mon Sep 17 00:00:00 2001 From: manNomi Date: Wed, 24 Jun 2026 22:00:31 +0900 Subject: [PATCH 01/20] =?UTF-8?q?feat:=20=EB=8D=B0=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=ED=86=B1=20=EC=B5=9C=EC=A0=81=ED=99=94=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_ui/UniversityDetail/_ui/TitleSection.tsx | 14 +- .../[id]/_ui/UniversityDetail/index.tsx | 65 +++---- .../[homeUniversity]/_ui/RegionFilter.tsx | 2 +- .../[homeUniversity]/_ui/SearchBar.tsx | 2 +- .../_ui/UniversityListContent.tsx | 161 ++++++++++-------- .../app/university/[homeUniversity]/page.tsx | 6 +- .../components/layout/GlobalLayout/index.tsx | 16 +- .../ui/BottomNavigation/index.tsx | 2 +- .../ui/DesktopNavigation/index.tsx | 97 +++++++++++ .../layout/PathBasedNavigation/index.tsx | 2 +- .../components/layout/TopDetailNavigation.tsx | 2 +- .../src/components/ui/TopLogoBar/index.tsx | 2 +- .../university/UniversityCards/index.tsx | 10 +- .../(home)/_ui/FindLastYearScoreBar/index.tsx | 2 +- .../app/(home)/_ui/HomeActionLinks/index.tsx | 6 +- .../_ui/HomeUniversitySearchSection/index.tsx | 18 +- .../src/app/(home)/_ui/NewsSection/index.tsx | 18 +- .../_ui/PopularUniversityCard.tsx | 12 +- .../_ui/PopularUniversitySection/index.tsx | 8 +- apps/web/src/app/(home)/page.tsx | 34 ++-- .../community/[boardCode]/PostWriteButton.tsx | 2 +- .../[boardCode]/[postId]/CommentInput.tsx | 2 +- .../[postId]/modify/PostModifyForm.tsx | 2 +- .../InterestCountriesScreen/index.tsx | 2 +- .../_components/StudyStatusScreen/index.tsx | 2 +- .../_components/UniversityScreen/index.tsx | 2 +- .../my/password/_ui/PasswordContent/index.tsx | 2 +- .../src/app/sign-up/email/EmailSignUpForm.tsx | 2 +- .../ApplicationBottomActionBar.tsx | 2 +- .../src/app/university/score/ScoreScreen.tsx | 2 +- .../score/submit/gpa/GpaSubmitForm.tsx | 2 +- .../language-test/LanguageTestSubmitForm.tsx | 2 +- .../components/layout/GlobalLayout/index.tsx | 16 +- .../ui/BottomNavigation/index.tsx | 2 +- .../ui/DesktopNavigation/index.tsx | 89 ++++++++++ .../layout/PathBasedNavigation/index.tsx | 2 +- .../components/layout/TopDetailNavigation.tsx | 2 +- .../src/components/ui/TopLogoBar/index.tsx | 2 +- .../university/UniversityCards/index.tsx | 10 +- 39 files changed, 437 insertions(+), 189 deletions(-) create mode 100644 apps/university-web/src/components/layout/GlobalLayout/ui/DesktopNavigation/index.tsx create mode 100644 apps/web/src/components/layout/GlobalLayout/ui/DesktopNavigation/index.tsx diff --git a/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/_ui/TitleSection.tsx b/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/_ui/TitleSection.tsx index 7f3002b35..1a0b8a5f3 100644 --- a/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/_ui/TitleSection.tsx +++ b/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/_ui/TitleSection.tsx @@ -8,8 +8,8 @@ interface TitleSectionProps { const TitleSection = ({ logoUrl, title, subTitle }: TitleSectionProps) => { return ( -
-
+
+
대학 로고 { className="rounded-full object-cover" fallbackSrc="/svgs/placeholders/university-logo-placeholder.svg" /> -
- {title} - {subTitle} +
+ + {title} + + + {subTitle} +
diff --git a/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/index.tsx b/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/index.tsx index f18248dc0..1f8c6b053 100644 --- a/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/index.tsx +++ b/apps/university-web/src/app/university/[homeUniversity]/[id]/_ui/UniversityDetail/index.tsx @@ -15,12 +15,12 @@ interface UniversityDetailProps { const UniversityDetail = ({ university, koreanName }: UniversityDetailProps) => { return ( -
-
+
+
-
+
대학 이미지 fallbackSrc="/svgs/placeholders/image-placeholder.svg" />
-
+
{university.country} 모집 {university.studentCapacity}명
- - -
-
-
전공상세
-
- {university?.detailsForMajor} -
-
-
-
-
영어강의 리스트
+
- - {university?.detailsForEnglishCourse} - + + +
+ +
+
+
+
전공상세
+
+ {university?.detailsForMajor} +
+
+
+
+
영어강의 리스트
+
+ + {university?.detailsForEnglishCourse} + +
+
+
- -
+
); diff --git a/apps/university-web/src/app/university/[homeUniversity]/_ui/RegionFilter.tsx b/apps/university-web/src/app/university/[homeUniversity]/_ui/RegionFilter.tsx index 8f5249663..a55298b5b 100644 --- a/apps/university-web/src/app/university/[homeUniversity]/_ui/RegionFilter.tsx +++ b/apps/university-web/src/app/university/[homeUniversity]/_ui/RegionFilter.tsx @@ -19,7 +19,7 @@ interface RegionFilterProps { const RegionFilter = ({ selectedRegions, onRegionChange }: RegionFilterProps) => { return ( -
+
{REGIONS.map(({ value, label }) => { const isSelected = selectedRegions.includes(value); diff --git a/apps/university-web/src/app/university/[homeUniversity]/_ui/SearchBar.tsx b/apps/university-web/src/app/university/[homeUniversity]/_ui/SearchBar.tsx index 53763d051..c0639ccfc 100644 --- a/apps/university-web/src/app/university/[homeUniversity]/_ui/SearchBar.tsx +++ b/apps/university-web/src/app/university/[homeUniversity]/_ui/SearchBar.tsx @@ -15,7 +15,7 @@ const SearchBar = ({ value, onChange, homeUniversitySlug }: SearchBarProps) => { const [isFocused, setIsFocused] = useState(false); return ( -
+
Object.hasOwn(COUNTRY_CODE_MAP, value); @@ -44,62 +45,72 @@ const REGION_FILTER_ITEMS = [ { value: RegionEnumExtend.CHINA, label: "중국권" }, ] as const; -const UniversityListPrerenderFallback = ({ universities, homeUniversitySlug }: UniversityListContentProps) => ( -
-
-
- - 학교명 또는 국가 검색 -
- - - 조건 검색 - - - - +const UniversityListPrerenderFallback = ({ universities, homeUniversitySlug, title }: UniversityListContentProps) => ( +
+
+

{title}

-
- {REGION_FILTER_ITEMS.map(({ value, label }) => ( - - {label} - - ))} -
+
+ - {universities.length === 0 ? ( -
-

검색 결과가 없습니다.

-

다른 검색어나 필터를 시도해보세요.

-
- ) : ( - - )} +
+
+ 총 {universities.length}개 학교 +
+ + {universities.length === 0 ? ( +
+

검색 결과가 없습니다.

+

다른 검색어나 필터를 시도해보세요.

+
+ ) : ( + + )} +
+
); -const UniversityListContentInner = ({ universities, homeUniversitySlug }: UniversityListContentProps) => { +const UniversityListContentInner = ({ universities, homeUniversitySlug, title }: UniversityListContentProps) => { const searchParams = useSearchParams(); const querySearchText = searchParams.get("searchText") ?? ""; const languageTestTypeParam = searchParams.get("languageTestType"); @@ -155,29 +166,39 @@ const UniversityListContentInner = ({ universities, homeUniversitySlug }: Univer }, [universities, searchText, selectedRegions, queryLanguageTestType, queryCountryCodesKey]); return ( -
- - - setSelectedRegions([region])} /> - - {/* 결과 카운트 */} -
- 총 {filteredUniversities.length}개 학교 +
+
+

{title}

- {/* 결과 표시 */} - {filteredUniversities.length === 0 ? ( -
-

검색 결과가 없습니다.

-

다른 검색어나 필터를 시도해보세요.

-
- ) : ( - - )} +
+ + +
+ {/* 결과 카운트 */} +
+ 총 {filteredUniversities.length}개 학교 +
+ + {/* 결과 표시 */} + {filteredUniversities.length === 0 ? ( +
+

검색 결과가 없습니다.

+

다른 검색어나 필터를 시도해보세요.

+
+ ) : ( + + )} +
+
diff --git a/apps/university-web/src/app/university/[homeUniversity]/page.tsx b/apps/university-web/src/app/university/[homeUniversity]/page.tsx index e5cc67f7d..d04c890c8 100644 --- a/apps/university-web/src/app/university/[homeUniversity]/page.tsx +++ b/apps/university-web/src/app/university/[homeUniversity]/page.tsx @@ -60,7 +60,11 @@ const UniversityListPage = async ({ params }: PageProps) => { return ( <> - + ); }; diff --git a/apps/university-web/src/components/layout/GlobalLayout/index.tsx b/apps/university-web/src/components/layout/GlobalLayout/index.tsx index aee5bc8ab..9e1b5e10c 100644 --- a/apps/university-web/src/components/layout/GlobalLayout/index.tsx +++ b/apps/university-web/src/components/layout/GlobalLayout/index.tsx @@ -3,6 +3,7 @@ import type { ReactNode } from "react"; import AIInspectorFab from "./ui/AIInspectorFab/index"; import BottomNavigation from "./ui/BottomNavigation"; import ClientModal from "./ui/ClientModal"; +import DesktopNavigation from "./ui/DesktopNavigation"; // import ServerModal from "./ui/ServerModal"; @@ -14,12 +15,15 @@ type LayoutProps = { const GlobalLayout = ({ children }: LayoutProps) => { return ( -
- {children} - - - - {/* */} +
+ +
+ {children} + + + + {/* */} +
); }; diff --git a/apps/university-web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx b/apps/university-web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx index ad0bafc81..454ccbd9c 100644 --- a/apps/university-web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx +++ b/apps/university-web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx @@ -38,7 +38,7 @@ const BottomNavigation = () => { } return ( -