From 589aa6714bce3f612c95bd4e0c396079dfdad038 Mon Sep 17 00:00:00 2001
From: seyun31 <2ne1jenna@naver.com>
Date: Fri, 20 Feb 2026 14:36:01 +0900
Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20"=EB=A6=AC=EC=96=BC=EB=A7=A4?=
=?UTF-8?q?=EC=B9=98"=20=EB=B8=8C=EB=9E=9C=EB=93=9C=20=EC=A0=9C=EC=95=88?=
=?UTF-8?q?=EB=B3=B4=EA=B8=B0=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B2=84?=
=?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EB=B0=94=ED=85=80?=
=?UTF-8?q?=EC=8B=9C=ED=8A=B8=20=EC=B2=B4=ED=81=AC=20=EB=B0=95=EC=8A=A4=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../business/components/CampaignBrandCard.tsx | 43 ++---
.../proposal/sent-proposal-content.tsx | 14 +-
app/routes/home/components/BannerCarousel.tsx | 8 +
app/routes/home/home-after-match.tsx | 150 +++++++++---------
.../create/components/SelectBottomSheet.tsx | 7 +-
5 files changed, 123 insertions(+), 99 deletions(-)
diff --git a/app/routes/business/components/CampaignBrandCard.tsx b/app/routes/business/components/CampaignBrandCard.tsx
index d709672..ade6281 100644
--- a/app/routes/business/components/CampaignBrandCard.tsx
+++ b/app/routes/business/components/CampaignBrandCard.tsx
@@ -3,18 +3,18 @@ import chatIcon from "../../../assets/chat-icon.svg";
import arrowRightIcon from "../../../assets/icon/arrow-right.svg";
interface CampaignBrandCardProps {
- showChatSection?: boolean;
- statusText?: string;
- brandName?: string;
- brandTags?: string[];
- brandImageUrl?: string;
+ showChatSection?: boolean;
+ statusText?: string;
+ brandName?: string;
+ brandTags?: string[];
+ brandImageUrl?: string;
matchingRate?: number;
brandId?: number | string;
category?: string;
}
-export default function CampaignBrandCard({
- showChatSection,
+export default function CampaignBrandCard({
+ showChatSection,
statusText,
brandName,
brandTags,
@@ -23,9 +23,9 @@ export default function CampaignBrandCard({
brandId,
category
}: CampaignBrandCardProps) {
- const navigate = useNavigate();
+ const navigate = useNavigate();
const handleBrandClick = (e: React.MouseEvent) => {
- e.stopPropagation();
+ e.stopPropagation();
if (brandId && category) {
navigate(`/brand?brandId=${brandId}&domain=${category}`);
} else {
@@ -41,13 +41,12 @@ export default function CampaignBrandCard({
-
- {brandName || "브랜드명"}
+ {brandName || "리얼매치"}
-
- {brandTags && brandTags.length > 0
- ? brandTags.map(tag => `#${tag}`).join(" ")
- : "#태그정보없음"}
+ {brandTags && brandTags.length > 0
+ ? brandTags.map(tag => `#${tag}`).join(" ")
+ : "#정밀매칭 #원스톱협업 #쌍방향제안"}
-
- 매칭률
- {matchingRate || 0}%
-
+ {matchingRate === 0 ? (
+
+ 광고
+
+ ) : (
+
+ 매칭률
+ {matchingRate || 0}%
+
+ )}
{statusText}
diff --git a/app/routes/business/proposal/sent-proposal-content.tsx b/app/routes/business/proposal/sent-proposal-content.tsx
index 8edb810..0d19d7a 100644
--- a/app/routes/business/proposal/sent-proposal-content.tsx
+++ b/app/routes/business/proposal/sent-proposal-content.tsx
@@ -17,6 +17,7 @@ import arrowRightIcon from "../../../assets/icon/arrow-right.svg";
import arrowPurpleIcon from "../../../assets/arrow-purple.svg";
import profileIcon from "../../../assets/icon-profile.svg";
import ConfirmModal from "../../../components/common/ConfirmModal";
+import adRealmatchLogo from "../../../assets/ad/ad-realmatch-logo.png";
export default function ProposalContent() {
const [searchParams] = useSearchParams();
@@ -54,7 +55,16 @@ export default function ProposalContent() {
const proposalResult = await getProposalDetail(proposalId);
setData(proposalResult);
- if (proposalResult.brandId) {
+ if (proposalResult.brandId === 0) {
+ // brandId가 0이면 리얼매치 광고로 하드코딩
+ setBrand({
+ brandId: 0,
+ brandName: "리얼매치",
+ brandTags: ["정밀매칭", "원스톱협업", "쌍방향제안"],
+ brandImageUrl: adRealmatchLogo,
+ matchingRate: 0
+ });
+ } else if (proposalResult.brandId) {
const brandResult = await getBrandSummary(proposalResult.brandId);
setBrand(brandResult);
}
@@ -184,7 +194,7 @@ export default function ProposalContent() {
-
{data.productId}
+
{data.productId !== 0 ? data.productId : ""}
diff --git a/app/routes/home/components/BannerCarousel.tsx b/app/routes/home/components/BannerCarousel.tsx
index ec3739d..e98b142 100644
--- a/app/routes/home/components/BannerCarousel.tsx
+++ b/app/routes/home/components/BannerCarousel.tsx
@@ -28,9 +28,17 @@ const fashionBanners: BannerItem[] = [
export default function BannerCarousel({
category,
+ loading,
}: {
category: CategoryKey;
+ loading?: boolean;
}) {
+ if (loading) {
+ return (
+
+ );
+ }
+
const banners = category === "beauty" ? beautyBanners : fashionBanners;
const displayBanners = [banners[banners.length - 1], ...banners, banners[0]];
diff --git a/app/routes/home/home-after-match.tsx b/app/routes/home/home-after-match.tsx
index 83806de..6f36108 100644
--- a/app/routes/home/home-after-match.tsx
+++ b/app/routes/home/home-after-match.tsx
@@ -481,7 +481,7 @@ export default function HomeAfterMatchPage() {
return (
-
+
@@ -561,46 +561,46 @@ export default function HomeAfterMatchPage() {
{homeCoreLoading
? Array.from({ length: 4 }).map((_, i) => (
-
-
-
-
-
-
+
+ ))
: campaigns.map((campaign, i) => {
- const safeCampaignId = getCampaignId(campaign);
- if (!safeCampaignId) return null;
-
- return (
-
goCampaignDetail(campaign)}
- onLikeToggle={handleCampaignLikeToggle}
- />
- );
- })}
+ const safeCampaignId = getCampaignId(campaign);
+ if (!safeCampaignId) return null;
+
+ return (
+ goCampaignDetail(campaign)}
+ onLikeToggle={handleCampaignLikeToggle}
+ />
+ );
+ })}
{profileModel && (
@@ -623,46 +623,46 @@ export default function HomeAfterMatchPage() {
{homeCoreLoading
? Array.from({ length: 4 }).map((_, i) => (
-
-
-
-
-
-
+
+ ))
: popularCampaigns.map((campaign, i) => {
- const safeCampaignId = getCampaignId(campaign);
- if (!safeCampaignId) return null;
-
- return (
-
goCampaignDetail(campaign)}
- onLikeToggle={handleCampaignLikeToggle}
- />
- );
- })}
+ const safeCampaignId = getCampaignId(campaign);
+ if (!safeCampaignId) return null;
+
+ return (
+ goCampaignDetail(campaign)}
+ onLikeToggle={handleCampaignLikeToggle}
+ />
+ );
+ })}
diff --git a/app/routes/matching/suggest/create/components/SelectBottomSheet.tsx b/app/routes/matching/suggest/create/components/SelectBottomSheet.tsx
index bd9ee5f..1dde87c 100644
--- a/app/routes/matching/suggest/create/components/SelectBottomSheet.tsx
+++ b/app/routes/matching/suggest/create/components/SelectBottomSheet.tsx
@@ -74,8 +74,9 @@ function SelectBottomSheetInner({