diff --git a/src/assets/icon/icon-check-circle.svg b/src/assets/icon/icon-check-circle.svg
new file mode 100644
index 00000000..ea1dc36e
--- /dev/null
+++ b/src/assets/icon/icon-check-circle.svg
@@ -0,0 +1,11 @@
+
diff --git a/src/assets/icon/icon-close.svg b/src/assets/icon/icon-close.svg
new file mode 100644
index 00000000..fb28d4d7
--- /dev/null
+++ b/src/assets/icon/icon-close.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/components/common/Modal.tsx b/src/components/common/Modal.tsx
new file mode 100644
index 00000000..5f2c5c1d
--- /dev/null
+++ b/src/components/common/Modal.tsx
@@ -0,0 +1,23 @@
+interface ModalProps {
+ isOpen: boolean;
+ onClose: () => void;
+ children: React.ReactNode;
+}
+
+export default function Modal({ isOpen, onClose, children }: ModalProps) {
+ if (!isOpen) return null;
+
+ return (
+
+ {/* 배경 레이어 */}
+
+ {/* 모달 본체 */}
+
+ {children}
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/globals.css b/src/globals.css
index 76f4d461..778ca87d 100644
--- a/src/globals.css
+++ b/src/globals.css
@@ -36,6 +36,7 @@ html {
--color-core-3: #b7b7f3;
--color-core-50: #6666e580;
--color-core-70: #B7B7F3B2;
+ --color-status-review: #A7B8FC;
;
/* State 컬러 */
diff --git a/src/routes/_main/_business/components/CampaignBrandCard.tsx b/src/routes/_main/_business/components/CampaignBrandCard.tsx
index 722aa177..cdf0bfdc 100644
--- a/src/routes/_main/_business/components/CampaignBrandCard.tsx
+++ b/src/routes/_main/_business/components/CampaignBrandCard.tsx
@@ -13,6 +13,7 @@ export default function CampaignBrandCard({
statusText = "보낸 제안",
roomId = "123" // 예시 ID
}: CampaignBrandCardProps) {
+ const isReviewing = statusText === "검토 중";
return (
{/* 상단 브랜드 정보 */}
@@ -42,7 +43,9 @@ export default function CampaignBrandCard({
매칭률
99%
- {statusText}
+
+ {statusText}
+
diff --git a/src/routes/_main/_business/components/CampaignCard.tsx b/src/routes/_main/_business/components/CampaignCard.tsx
index 9cb91618..5e582f35 100644
--- a/src/routes/_main/_business/components/CampaignCard.tsx
+++ b/src/routes/_main/_business/components/CampaignCard.tsx
@@ -1,3 +1,4 @@
+import { useNavigate } from "@tanstack/react-router";
import BrandLogo from "../../../../assets/brand-logo.png";
import ArrowRight from "../../../../assets/icon/arrow-right.svg";
import SearchIcon from "../../../../assets/icon/search.svg";
@@ -20,7 +21,7 @@ export default function CampaignCard({
logo,
showButton = true,
}: CampaignCardProps) {
- const BUTTON_WIDTH = '280px';
+ const navigate = useNavigate();
// 로고 컴포넌트
const Logo = (
@@ -35,10 +36,7 @@ export default function CampaignCard({
return (
-
+
{/* 브랜드 + 제목/날짜 */}
@@ -51,8 +49,8 @@ export default function CampaignCard({
{title}
- {startDate}.25
- {endDate}.25
+ {startDate}
+ {endDate}
@@ -60,13 +58,20 @@ export default function CampaignCard({
{/* 캠페인 보기 버튼 */}
{showButton && (
{/* 일정 바 */}
-
+
{/* 비플레인 */}
@@ -72,11 +72,11 @@ export default function MonthlyCalendar() {
라운드랩
diff --git a/src/routes/_main/_business/components/WeeklyCalendar.tsx b/src/routes/_main/_business/components/WeeklyCalendar.tsx
index 10a06b06..bed289ad 100644
--- a/src/routes/_main/_business/components/WeeklyCalendar.tsx
+++ b/src/routes/_main/_business/components/WeeklyCalendar.tsx
@@ -4,7 +4,7 @@ export default function WeeklyCalendar() {
const dates = [6, 7, 8, 9, 10, 11, 12];
return (
-
+
{/* 요일 */}
{WEEK_DAYS.map((day) => (
@@ -12,34 +12,53 @@ export default function WeeklyCalendar() {
))}
- {/* 날짜 */}
-
+ {/* 날짜 그리드 */}
+
{dates.map((date) => (
-
- {/* 일정 */}
-
+ {/* 일정 바 컨테이너 */}
+
{/* 비플레인 */}
-
);
-}
+}
\ No newline at end of file
diff --git a/src/routes/_main/_business/proposal/received-proposal-content.tsx b/src/routes/_main/_business/proposal/received-proposal-content.tsx
index 66d3396a..8173844e 100644
--- a/src/routes/_main/_business/proposal/received-proposal-content.tsx
+++ b/src/routes/_main/_business/proposal/received-proposal-content.tsx
@@ -1,38 +1,43 @@
import { useState } from "react";
-
import Header from "../../../../components/layout/Header";
import CampaignBrandCard from "../components/CampaignBrandCard";
import CampaignInfoGroup from "../components/CampaignInfoGroup";
+import Modal from "../../../../components/common/Modal";
import dropdownIcon from "../../../../assets/arrow-down.svg";
import dropupIcon from "../../../../assets/arrow-up.svg";
import arrowRightIcon from "../../../../assets/icon/arrow-right.svg";
-import profileIcon from "../../../../assets/logo/mini-logo.svg";
+import profileIcon from "../../../../assets/logo/mini-logo.svg";
+import checkIcon from "../../../../assets/icon/icon-check-circle.svg";
+import closeIcon from "../../../../assets/icon/icon-close.svg";
export default function ReceivedProposalContent() {
+ const [modalType, setModalType] = useState<"none" | "confirm" | "success">("none");
const [isContentOpen, setIsContentOpen] = useState(false);
+ const handleAcceptClick = () => setModalType("confirm");
+ const handleConfirm = () => setModalType("success");
+ const closeModal = () => setModalType("none");
+
return (
-
-
+
+
-
- {/* 1. 상단 섹션: 브랜드 카드 */}
-
-
-
+ {/* 배경색 및 간격을 CampaignContent와 동일하게 유지 */}
+
+ {/* 1. 상단 섹션: 브랜드 카드 및 타이틀 */}
+ {/* CampaignContent와 동일하게 상단만 흰색 배경 유지하거나 구분감 부여 */}
+
- {/* 2. 상세 정보 섹션 */}
-
- {/* 캠페인명 */}
+ {/* 2. 상세 정보 섹션: 여기서부터 회색 배경(bluegray-1) */}
+
-
+
비플레인 선크림 리뷰 콘텐츠
@@ -41,27 +46,22 @@ export default function ReceivedProposalContent() {
setIsContentOpen(prev => !prev)}>
-
+
}
>
-
설명
-
+
설명
+
안녕하세요 비플레인 입니다!
- 크리에이터님과 이미지와 비플레인이 추구하는 가치가 잘 맞닿아 있다고 생각되어 협찬을 제안드립니다.
+ 크리에이터님과 이미지가 잘 맞아 협찬을 제안드립니다.
- {/* 아코디언 상세 내용 */}
{isContentOpen && (
-
+
@@ -74,68 +74,105 @@ export default function ReceivedProposalContent() {
- {/* 협찬품 / 원고료 */}
+ {/* 협찬품 / 원고료: 높이 36px 통일 */}
-
+
글로우 크림 1개
-
- 200,000
원
+
+ 200,000
+ 원
- {/* 제작 기간 */}
+ {/* 제작 기간: 36px 및 pl-4 통일 */}
-
-
- 2025년 1월 20일
+
+
+ 2025-01-20
-
~
-
- 2025년 1월 30일
+
~
+
+ 2025-01-30
+
- {/* 3. 하단 액션 버튼 (거절하기 / 제안 수락하기) */}
-
-
-
);
}
-// 기존 ContentItem 재사용
+// ContentItem: CampaignContent의 규격(h-34, text-callout1)으로 수정
function ContentItem({ label, value }: { label: string; value: string }) {
return (
-
-
{label}
-
-
{value}
-

+
+
{label}
+
+
+ {value}
+
+
);