From a4d840a3f0609e1a862b47dfed29c7ef1d3e2e06 Mon Sep 17 00:00:00 2001 From: jinsil Date: Fri, 1 Nov 2024 16:11:36 +0900 Subject: [PATCH 01/28] =?UTF-8?q?feat:=20feedback=20=ED=83=80=EC=9E=85?= =?UTF-8?q?=EC=97=90=20isWrited=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/@types/feedback.ts | 1 + .../feedbackCard/FeedbackCard.stories.tsx | 4 ++-- .../feedbackCardList/FeedbackCardList.stories.tsx | 2 ++ .../mocks/mockResponse/deliveredFeedbackInfo.json | 15 ++++++++++----- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/frontend/src/@types/feedback.ts b/frontend/src/@types/feedback.ts index 0ebeafed2..1f1cf70d6 100644 --- a/frontend/src/@types/feedback.ts +++ b/frontend/src/@types/feedback.ts @@ -17,6 +17,7 @@ export interface FeedbackCardData { readonly feedbackKeywords: NonEmptyArray; readonly feedbackText: string; readonly evaluationPoint: 1 | 2 | 3 | 4 | 5; + readonly isWrited: boolean; } export interface RevieweeFeedbackData { diff --git a/frontend/src/components/feedback/feedbackCard/FeedbackCard.stories.tsx b/frontend/src/components/feedback/feedbackCard/FeedbackCard.stories.tsx index 711b6c002..eb9264d46 100644 --- a/frontend/src/components/feedback/feedbackCard/FeedbackCard.stories.tsx +++ b/frontend/src/components/feedback/feedbackCard/FeedbackCard.stories.tsx @@ -37,8 +37,8 @@ export const 기술적_피드백: Story = { feedbackKeywords: ["작업 속도", "PR 본문 메시지", "코드 관심사 분리"], feedbackText: `작업 속도가 정말 빠르면서 평소 책을 많이 읽어서 그런지 PR 본문 메시지가 정말 알이 꽉꽉 찼어요. - 그리고 코드 관심사 분리라는 단어를 알고 있어서 대화하기 편했어요 ㅎㅎ. - `, + 그리고 코드 관심사 분리라는 단어를 알고 있어서 대화하기 편했어요 ㅎㅎ.`, + isWrited: true, evaluationPoint: 1, }, feedbackType: "develop", diff --git a/frontend/src/components/feedback/feedbackCardList/FeedbackCardList.stories.tsx b/frontend/src/components/feedback/feedbackCardList/FeedbackCardList.stories.tsx index 7512ea442..837a1fc48 100644 --- a/frontend/src/components/feedback/feedbackCardList/FeedbackCardList.stories.tsx +++ b/frontend/src/components/feedback/feedbackCardList/FeedbackCardList.stories.tsx @@ -29,12 +29,14 @@ const developFeedbackData = deliveredFeedbackInfo.feedbacks[0].developFeedback.m ...feedback, feedbackKeywords: feedback.feedbackKeywords as unknown as NonEmptyArray, evaluationPoint: feedback.evaluationPoint as 1 | 2 | 3 | 4 | 5, + isWrited: feedback.isWrited as boolean, })) satisfies FeedbackCardData[]; const socialFeedbackData = deliveredFeedbackInfo.feedbacks[0].socialFeedback.map((feedback) => ({ ...feedback, feedbackKeywords: feedback.feedbackKeywords as unknown as NonEmptyArray, evaluationPoint: feedback.evaluationPoint as 1 | 2 | 3 | 4 | 5, + isWrited: feedback.isWrited as boolean, })) satisfies FeedbackCardData[]; export const Default: Story = { diff --git a/frontend/src/mocks/mockResponse/deliveredFeedbackInfo.json b/frontend/src/mocks/mockResponse/deliveredFeedbackInfo.json index e3bcbea48..48b987978 100644 --- a/frontend/src/mocks/mockResponse/deliveredFeedbackInfo.json +++ b/frontend/src/mocks/mockResponse/deliveredFeedbackInfo.json @@ -13,7 +13,8 @@ "username": "a", "feedbackKeywords": ["string"], "evaluationPoint": 4, - "feedbackText": "string" + "feedbackText": "string", + "isWrited": true }, { "feedbackId": 0, @@ -23,7 +24,8 @@ "username": "q", "feedbackKeywords": ["string"], "evaluationPoint": 4, - "feedbackText": "string" + "feedbackText": "string", + "isWrited": true }, { "feedbackId": 0, @@ -33,7 +35,8 @@ "username": "m", "feedbackKeywords": ["string"], "evaluationPoint": 4, - "feedbackText": "string" + "feedbackText": "string", + "isWrited": true }, { "feedbackId": 0, @@ -43,7 +46,8 @@ "username": "b", "feedbackKeywords": ["string"], "evaluationPoint": 4, - "feedbackText": "string" + "feedbackText": "string", + "isWrited": true } ], "socialFeedback": [ @@ -55,7 +59,8 @@ "username": "q", "feedbackKeywords": ["string"], "evaluationPoint": 4, - "feedbackText": "string" + "feedbackText": "string", + "isWrited": true } ] } From 2ee37c92d321527bf76ce28616e80414b8182af1 Mon Sep 17 00:00:00 2001 From: jinsil Date: Fri, 1 Nov 2024 16:11:53 +0900 Subject: [PATCH 02/28] =?UTF-8?q?refactor:=20hostname=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20=EB=B0=96=EC=9C=BC=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/utils/hostType.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/utils/hostType.ts b/frontend/src/utils/hostType.ts index f9d10fb41..20764705a 100644 --- a/frontend/src/utils/hostType.ts +++ b/frontend/src/utils/hostType.ts @@ -1,6 +1,6 @@ -const getHostType = () => { - const hostname = window.location.hostname; +const hostname = window.location.hostname; +const getHostType = () => { if (process.env.NODE_ENV === "development") return "develop"; if (hostname.includes("dev")) return "release"; From 5de19574c910aed4fbd78c581e18f1dbf4978732 Mon Sep 17 00:00:00 2001 From: jinsil Date: Fri, 1 Nov 2024 17:11:52 +0900 Subject: [PATCH 03/28] =?UTF-8?q?feat:=20=ED=94=BC=EB=93=9C=EB=B0=B1=20?= =?UTF-8?q?=EC=95=88=20=EC=8D=BC=EC=9D=84=20=EB=95=8C=20=EB=B8=94=EB=9F=AC?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feedbackCard/FeedbackCard.style.ts | 27 +++++++ .../feedback/feedbackCard/FeedbackCard.tsx | 71 ++++++++++++------- 2 files changed, 71 insertions(+), 27 deletions(-) diff --git a/frontend/src/components/feedback/feedbackCard/FeedbackCard.style.ts b/frontend/src/components/feedback/feedbackCard/FeedbackCard.style.ts index 54fb309cc..8363c2cdb 100644 --- a/frontend/src/components/feedback/feedbackCard/FeedbackCard.style.ts +++ b/frontend/src/components/feedback/feedbackCard/FeedbackCard.style.ts @@ -3,6 +3,8 @@ import { EllipsisText, VisuallyHidden } from "@/styles/common"; import media from "@/styles/media"; export const FeedbackCardContainer = styled.div<{ $isTypeDevelop: boolean }>` + position: relative; + overflow-y: hidden; display: flex; flex-direction: column; @@ -27,6 +29,31 @@ export const FeedbackCardContainer = styled.div<{ $isTypeDevelop: boolean }>` `} `; +export const ButtonWrapper = styled.div` + position: absolute; + z-index: 1; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + display: flex; + flex-direction: column; + gap: 1rem; + align-items: center; + justify-content: center; + + width: 100%; + + font: ${({ theme }) => theme.TEXT.large_bold}; +`; + +export const BlurContainer = styled.div<{ $isWrited: boolean }>` + display: flex; + flex-direction: column; + gap: 3rem; + filter: ${(props) => (props.$isWrited ? "none" : "blur(7px)")}; +`; + export const FeedbackScoreContainer = styled.div` display: flex; flex-direction: column; diff --git a/frontend/src/components/feedback/feedbackCard/FeedbackCard.tsx b/frontend/src/components/feedback/feedbackCard/FeedbackCard.tsx index 1e89058f4..f70c7ecc6 100644 --- a/frontend/src/components/feedback/feedbackCard/FeedbackCard.tsx +++ b/frontend/src/components/feedback/feedbackCard/FeedbackCard.tsx @@ -1,4 +1,6 @@ +import { useNavigate } from "react-router-dom"; import { FeedbackType } from "@/hooks/feedback/useSelectedFeedbackData"; +import Button from "@/components/common/button/Button"; import Profile from "@/components/common/profile/Profile"; import { Textarea } from "@/components/common/textarea/Textarea"; import EvaluationPointBar from "@/components/feedback/evaluationPointBar/EvaluationPointBar"; @@ -18,6 +20,7 @@ const FeedbackCard = ({ feedbackCardData, feedbackType, }: FeedbackCardProps) => { + const navigate = useNavigate(); const getFeedbackTarget = (feedbackType: "develop" | "social") => { if (selectedFeedbackType === "받은 피드백") { return feedbackType === "develop" ? "FROM. 나의 리뷰어" : "FROM. 나의 리뷰이"; @@ -28,7 +31,19 @@ const FeedbackCard = ({ return ( <> 미션의 상세 피드백 내용입니다. + + {!feedbackCardData.isWrited && ( + +

상대방 피드백을 작성해야 볼 수 있습니다.

+ +
+ )} @@ -51,35 +66,37 @@ const FeedbackCard = ({ - - 피드백 점수 - - + + + 피드백 점수 + + - - 피드백 키워드 - - {feedbackCardData.feedbackKeywords.map((keyword) => ( - {keyword} - ))} - - + + 피드백 키워드 + + {feedbackCardData.feedbackKeywords.map((keyword) => ( + {keyword} + ))} + + - - 세부 피드백 -