From 136d64382064c1b2d32f0e271d118d7d8cc54714 Mon Sep 17 00:00:00 2001 From: westofsky Date: Fri, 24 Oct 2025 18:42:38 +0900 Subject: [PATCH 1/8] =?UTF-8?q?fix=20:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EB=AA=BB=20=EB=B6=88=EB=9F=AC=EC=98=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EB=B0=B0=EA=B2=BD=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(pages)/save/_components/course-card.tsx | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/app/(pages)/save/_components/course-card.tsx b/src/app/(pages)/save/_components/course-card.tsx index 144bda8..a14da8a 100644 --- a/src/app/(pages)/save/_components/course-card.tsx +++ b/src/app/(pages)/save/_components/course-card.tsx @@ -25,22 +25,28 @@ export function CourseCard({ router.push(`/course/${crsIdx}`); }; + // 이미지 URL 유효성 검사 + const hasValidImage = imageUrl && imageUrl.trim() !== ''; + return (
- {title} + {hasValidImage && ( + {title} + )}

{title}

{location}

From 32b2785995631689b2467a9bbd800ac4783e3698 Mon Sep 17 00:00:00 2001 From: westofsky Date: Fri, 24 Oct 2025 18:52:57 +0900 Subject: [PATCH 2/8] =?UTF-8?q?fix=20:=20=EC=BD=94=EC=8A=A4=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=EC=97=AC=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(pages)/contest/[id]/_components/recommended-courses.tsx | 2 +- src/app/(pages)/contest/_components/contest-card.tsx | 2 +- src/app/(pages)/home/_components/course-list/course-card.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx index 9f50b72..eebd3fd 100644 --- a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx +++ b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx @@ -36,7 +36,7 @@ function ContestCourseCard({ course }: { course: Course }) {
-
+

{course.title}

diff --git a/src/app/(pages)/contest/_components/contest-card.tsx b/src/app/(pages)/contest/_components/contest-card.tsx index f43b9c5..ca1ed9c 100644 --- a/src/app/(pages)/contest/_components/contest-card.tsx +++ b/src/app/(pages)/contest/_components/contest-card.tsx @@ -29,7 +29,7 @@ export function ContestCard({
onClick?.(id)} diff --git a/src/app/(pages)/home/_components/course-list/course-card.tsx b/src/app/(pages)/home/_components/course-list/course-card.tsx index a1cd4cd..6a3d734 100644 --- a/src/app/(pages)/home/_components/course-list/course-card.tsx +++ b/src/app/(pages)/home/_components/course-list/course-card.tsx @@ -40,7 +40,7 @@ export function CourseCard({
-
+

{title}

From 1e4658135dea1ac3e93c347e28cb3209888568f2 Mon Sep 17 00:00:00 2001 From: westofsky Date: Fri, 24 Oct 2025 18:53:23 +0900 Subject: [PATCH 3/8] =?UTF-8?q?fix=20:=20=EC=BD=94=EC=8A=A4=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=EC=97=AC=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/course-card.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/course-card.tsx b/src/components/course-card.tsx index f2531d2..4ea59e2 100644 --- a/src/components/course-card.tsx +++ b/src/components/course-card.tsx @@ -27,7 +27,7 @@ export default function CourseCard({
-
+

{title}

From 0cb524a0bfc4da2226cb41dc892311926d63c64b Mon Sep 17 00:00:00 2001 From: westofsky Date: Mon, 27 Oct 2025 05:25:02 +0900 Subject: [PATCH 4/8] =?UTF-8?q?fix=20:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EB=AA=BB=20=EB=B6=88=EB=9F=AC=EC=98=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EB=B0=B0=EA=B2=BD=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../[id]/_components/recommended-courses.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx index eebd3fd..ec460f2 100644 --- a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx +++ b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx @@ -22,17 +22,22 @@ function ContestCourseCard({ course }: { course: Course }) { } }; + // 이미지 URL 유효성 검사 + const hasValidImage = course.imageUrl && course.imageUrl.trim() !== ''; + return (
- {`${course.title} + {hasValidImage && ( + {`${course.title} + )}
From 4be9a959ee5a3624c96ca4a4fb7ba8495d6ff222 Mon Sep 17 00:00:00 2001 From: westofsky Date: Mon, 27 Oct 2025 05:25:34 +0900 Subject: [PATCH 5/8] =?UTF-8?q?fix=20:=20=EC=B0=9C=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EA=B0=84=EA=B2=A9=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/(pages)/save/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(pages)/save/page.tsx b/src/app/(pages)/save/page.tsx index e0469de..7d2787c 100644 --- a/src/app/(pages)/save/page.tsx +++ b/src/app/(pages)/save/page.tsx @@ -10,8 +10,8 @@ export default async function SavePage() {
+
-
); } From e127b584e390130d082f886507c44007a3179228 Mon Sep 17 00:00:00 2001 From: westofsky Date: Mon, 27 Oct 2025 06:10:30 +0900 Subject: [PATCH 6/8] =?UTF-8?q?fix=20:=20=EC=BD=94=EC=8A=A4=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20?= =?UTF-8?q?=EC=97=AC=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contest/[id]/_components/recommended-courses.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx index ec460f2..5271fe2 100644 --- a/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx +++ b/src/app/(pages)/contest/[id]/_components/recommended-courses.tsx @@ -1,5 +1,6 @@ import { useRouter } from 'next/navigation'; import Image from 'next/image'; +import { cn } from '@/utils/cn'; interface Course { id: string; @@ -27,7 +28,10 @@ function ContestCourseCard({ course }: { course: Course }) { return (
{hasValidImage && ( @@ -66,9 +70,9 @@ export function RecommendedCourses({ courses }: RecommendedCoursesProps) {