From 20fa57747feb07effa52a567100c35f3dcf081d6 Mon Sep 17 00:00:00 2001 From: aken-you Date: Fri, 29 Aug 2025 23:03:29 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=EC=8A=A4=ED=84=B0=EB=94=94=20?= =?UTF-8?q?=ED=9B=84=EA=B8=B0=EC=97=90=EC=84=9C=20content=EB=8A=94=20?= =?UTF-8?q?=ED=95=84=EC=88=98=20x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/study/ui/study-review-modal.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/features/study/ui/study-review-modal.tsx b/src/features/study/ui/study-review-modal.tsx index dd959979..9e663392 100644 --- a/src/features/study/ui/study-review-modal.tsx +++ b/src/features/study/ui/study-review-modal.tsx @@ -74,12 +74,7 @@ function StudyReviewForm({ onClose }: { onClose: () => void }) { if (!data) return null; const handleSubmit = () => { - if ( - form.keywordIds.length === 0 || - form.satisfactionId === null || - form.content === '' - ) - return; + if (form.keywordIds.length === 0 || form.satisfactionId === null) return; addStudyReview(form, { onSuccess: () => { From 53418c4a8ba38975965d971b311a52ee04cdea99 Mon Sep 17 00:00:00 2001 From: aken-you Date: Fri, 29 Aug 2025 23:16:41 +0900 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=ED=9B=84=EA=B8=B0=EC=97=90=20?= =?UTF-8?q?=EC=9C=A0=EC=A0=80=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(my)/my-study-review/page.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/(my)/my-study-review/page.tsx b/app/(my)/my-study-review/page.tsx index b653e736..7240604d 100644 --- a/app/(my)/my-study-review/page.tsx +++ b/app/(my)/my-study-review/page.tsx @@ -11,6 +11,7 @@ import { useUserPositiveKeywordsQuery, } from '@/features/study/model/use-review-query'; import { formatKoreaRelativeTime } from '@/shared/lib/time'; +import UserAvatar from '@/shared/ui/avatar'; export default function MyStudyReview() { const { data: positiveKeywordsData } = useUserPositiveKeywordsQuery({ @@ -176,12 +177,10 @@ function Review({ data }: { data: MyReviewItem }) { return (
  • - {`${data.writer.memberName}
    From ad514873fb43eeafe70fa42ad3def3feac89b8f3 Mon Sep 17 00:00:00 2001 From: aken-you Date: Fri, 29 Aug 2025 23:38:42 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20=ED=9B=84=EA=B8=B0=20=EB=82=B4?= =?UTF-8?q?=EC=9A=A9=EC=9D=98=20=EC=A4=84=20=EC=88=98=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=9D=BC=20'=EB=8D=94=EB=B3=B4=EA=B8=B0'=20=EB=B2=84=ED=8A=BC?= =?UTF-8?q?=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(my)/my-study-review/page.tsx | 36 +++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/app/(my)/my-study-review/page.tsx b/app/(my)/my-study-review/page.tsx index 7240604d..21cffeda 100644 --- a/app/(my)/my-study-review/page.tsx +++ b/app/(my)/my-study-review/page.tsx @@ -1,7 +1,7 @@ 'use client'; import Image from 'next/image'; -import { useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import KeywordReview from '@/entities/user/ui/keyword-review'; import MoreKeywordReviewModal from '@/entities/user/ui/more-keyword-review-modal'; import { MyReviewItem } from '@/features/study/api/types'; @@ -173,6 +173,19 @@ function MoreNegativeKeywordsModal() { function Review({ data }: { data: MyReviewItem }) { const [expanded, setExpanded] = useState(false); + const [showButton, setShowButton] = useState(false); + const contentRef = useRef(null); + + useEffect(() => { + if (contentRef.current) { + const lineHeight = parseInt( + window.getComputedStyle(contentRef.current).lineHeight, + 10, + ); + const maxHeight = lineHeight * 3; // 3줄 기준 + setShowButton(contentRef.current.scrollHeight > maxHeight); + } + }, [data.content]); return (
  • @@ -196,18 +209,23 @@ function Review({ data }: { data: MyReviewItem }) {

    {data.content}

    - -
    + {showButton && ( + + )} +
    스터디 기간 From 9ff42b2b527b2736a42cbede2ca3eeab1e2397e5 Mon Sep 17 00:00:00 2001 From: aken-you Date: Sat, 30 Aug 2025 00:24:31 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=EC=8A=A4=ED=84=B0=EB=94=94=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20content=EA=B0=80=20=EB=B9=88=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=EC=9D=B4=EB=A9=B4=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EC=97=90=EA=B2=8C=20Null=EB=A1=9C=20=EC=A0=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/study/api/types.ts | 2 +- src/features/study/ui/study-review-modal.tsx | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/features/study/api/types.ts b/src/features/study/api/types.ts index 92ab0371..360ab384 100644 --- a/src/features/study/api/types.ts +++ b/src/features/study/api/types.ts @@ -124,7 +124,7 @@ export interface AddStudyReviewRequest { targetMemberId: number; satisfactionId: 10 | 20 | 30; keywordIds: number[]; - content: string; + content: string | null; } interface Keyword { diff --git a/src/features/study/ui/study-review-modal.tsx b/src/features/study/ui/study-review-modal.tsx index 9e663392..aa7251d8 100644 --- a/src/features/study/ui/study-review-modal.tsx +++ b/src/features/study/ui/study-review-modal.tsx @@ -76,11 +76,17 @@ function StudyReviewForm({ onClose }: { onClose: () => void }) { const handleSubmit = () => { if (form.keywordIds.length === 0 || form.satisfactionId === null) return; - addStudyReview(form, { - onSuccess: () => { - onClose(); + addStudyReview( + { + ...form, + content: form.content || null, }, - }); + { + onSuccess: () => { + onClose(); + }, + }, + ); }; return ( From 71088e67857ec5ff8a964b66da71d528522e5612 Mon Sep 17 00:00:00 2001 From: aken-you Date: Sat, 30 Aug 2025 02:51:22 +0900 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20=EC=8A=A4=ED=84=B0=EB=94=94=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20content=EA=B0=80=20=EB=B9=88=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=EC=9D=B4=EB=A9=B4=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EC=97=90=EA=B2=8C=20undefined=EB=A1=9C=20=EC=A0=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/study/api/types.ts | 2 +- src/features/study/ui/study-review-modal.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/features/study/api/types.ts b/src/features/study/api/types.ts index 360ab384..a77cbd89 100644 --- a/src/features/study/api/types.ts +++ b/src/features/study/api/types.ts @@ -124,7 +124,7 @@ export interface AddStudyReviewRequest { targetMemberId: number; satisfactionId: 10 | 20 | 30; keywordIds: number[]; - content: string | null; + content?: string; } interface Keyword { diff --git a/src/features/study/ui/study-review-modal.tsx b/src/features/study/ui/study-review-modal.tsx index aa7251d8..e39d325b 100644 --- a/src/features/study/ui/study-review-modal.tsx +++ b/src/features/study/ui/study-review-modal.tsx @@ -79,7 +79,7 @@ function StudyReviewForm({ onClose }: { onClose: () => void }) { addStudyReview( { ...form, - content: form.content || null, + content: form.content || undefined, }, { onSuccess: () => {