From 5f8ea4a6dc848b9d0cb68a6707bc0b5c5fb3fea9 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 12:27:12 +0900 Subject: [PATCH 01/39] =?UTF-8?q?style:=20=EA=B8=B0=EB=A1=9D=EA=B0=84=20?= =?UTF-8?q?=EA=B0=84=EA=B2=A9=2032px=20=E2=86=92=2040px=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/memory/MemoryContent/RecordList.styled.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/memory/MemoryContent/RecordList.styled.ts b/src/components/memory/MemoryContent/RecordList.styled.ts index 441930ae..90477709 100644 --- a/src/components/memory/MemoryContent/RecordList.styled.ts +++ b/src/components/memory/MemoryContent/RecordList.styled.ts @@ -3,5 +3,5 @@ import styled from '@emotion/styled'; export const RecordListContainer = styled.div` display: flex; flex-direction: column; - gap: 32px; + gap: 40px; `; From 6cfa619fbaa7bd2a18364712bda9a7e45c6b3e86 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 12:30:47 +0900 Subject: [PATCH 02/39] =?UTF-8?q?fix:=20=EA=B8=B0=EB=A1=9D=EC=9E=A5=20?= =?UTF-8?q?=ED=88=B4=ED=8C=81=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/memory/RecordInfoMessage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/memory/RecordInfoMessage.tsx b/src/components/memory/RecordInfoMessage.tsx index 100f98f2..65bb612a 100644 --- a/src/components/memory/RecordInfoMessage.tsx +++ b/src/components/memory/RecordInfoMessage.tsx @@ -7,7 +7,7 @@ const RecordInfoMessage = () => { 정보 - 내 진행도에 따라 일부 댓글은 블러처리됩니다. + 내 진행도에 따라 일부 기록은 블러처리됩니다. ); }; From 274caf0928f731f56a5002e24ffda2184de4b978 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 12:50:00 +0900 Subject: [PATCH 03/39] =?UTF-8?q?fix:=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=95=88=EB=B3=B4=EC=9D=B4=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/createpost/PostContentSection.styled.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/createpost/PostContentSection.styled.ts b/src/components/createpost/PostContentSection.styled.ts index 15b52217..982e2f4f 100644 --- a/src/components/createpost/PostContentSection.styled.ts +++ b/src/components/createpost/PostContentSection.styled.ts @@ -18,6 +18,7 @@ export const TextArea = styled.textarea` resize: none; outline: none; border: none; + overflow: hidden; &::placeholder { color: ${semanticColors.text.ghost}; From 6508d0048a94b0cfc7409c8ed20f834d8c3bcb67 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 12:53:21 +0900 Subject: [PATCH 04/39] =?UTF-8?q?fix:=20=EA=B8=80=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20=EC=B1=85=20?= =?UTF-8?q?=ED=91=9C=EC=A7=80=20=EB=B6=88=EB=9F=AC=EC=98=A4=EA=B8=B0=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0=20-=20=EC=B1=85=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EB=A1=9C=EB=94=A9=20=EB=A1=9C=EC=A7=81=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 --- src/pages/post/UpdatePost.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/post/UpdatePost.tsx b/src/pages/post/UpdatePost.tsx index 2991a416..3c78a74e 100644 --- a/src/pages/post/UpdatePost.tsx +++ b/src/pages/post/UpdatePost.tsx @@ -64,7 +64,7 @@ const UpdatePost = () => { id: 0, title: data.bookTitle, author: data.bookAuthor, - cover: '', + cover: data.bookImageUrl, isbn: data.isbn, }); From 12a9928ad5b4158413588ac850d811b3dc5f6f2f Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 12:57:32 +0900 Subject: [PATCH 05/39] =?UTF-8?q?fix:=20=EA=B8=80=20=EC=9E=91=EC=84=B1=20?= =?UTF-8?q?=EB=B0=8F=20=EC=88=98=EC=A0=95=20=EC=8B=9C=20=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EC=9C=84=EC=9D=98=20=E2=80=98=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EC=A4=91=E2=80=99/'=EC=88=98=EC=A0=95=EC=A4=91'=20=EA=B8=80?= =?UTF-8?q?=EC=94=A8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/post/CreatePost.tsx | 2 +- src/pages/post/UpdatePost.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/post/CreatePost.tsx b/src/pages/post/CreatePost.tsx index 5948c444..faa0e04e 100644 --- a/src/pages/post/CreatePost.tsx +++ b/src/pages/post/CreatePost.tsx @@ -171,7 +171,7 @@ const CreatePost = () => { } title="새 글" - rightButton={loading ? '작성 중...' : '완료'} + rightButton="완료" onLeftClick={handleBackClick} onRightClick={handleCompleteClick} isNextActive={isFormValid && !loading} diff --git a/src/pages/post/UpdatePost.tsx b/src/pages/post/UpdatePost.tsx index 3c78a74e..597b4d16 100644 --- a/src/pages/post/UpdatePost.tsx +++ b/src/pages/post/UpdatePost.tsx @@ -152,7 +152,7 @@ const UpdatePost = () => { } title="글 수정" - rightButton={updateLoading ? '수정 중...' : '완료'} + rightButton="완료" onLeftClick={handleBackClick} onRightClick={handleCompleteClick} isNextActive={isFormValid && !updateLoading} From db837d4124e2adc6b17cb503a85ffefdd24e8efe Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:03:04 +0900 Subject: [PATCH 06/39] =?UTF-8?q?style:=20=EB=8D=94=EB=B3=B4=EA=B8=B0=20?= =?UTF-8?q?=EB=B0=94=ED=85=80=EC=8B=9C=ED=8A=B8=20=EC=95=84=EB=9E=98=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 --- src/components/common/Modal/MoreMenu.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/common/Modal/MoreMenu.tsx b/src/components/common/Modal/MoreMenu.tsx index 7a3bf268..a2165114 100644 --- a/src/components/common/Modal/MoreMenu.tsx +++ b/src/components/common/Modal/MoreMenu.tsx @@ -142,30 +142,30 @@ const Button = styled.div<{ variant: 'edit' | 'delete' | 'report' | 'pin' }>` if (variant === 'pin') { return ` &:first-of-type { - padding: 8px 12px 16px 12px; + padding: 13px 12px 21px 12px; } &:nth-of-type(2) { - padding: 8px 12px 16px 12px; + padding: 13px 12px 21px 12px; } &:last-of-type { - padding: 16px 12px 8px 12px; + padding: 21px 12px 13px 12px; border-bottom: none; } `; } return ` &:first-of-type { - padding: 8px 12px 16px 12px; + padding: 13px 12px 21px 12px; } &:nth-of-type(2) { - padding: 8px 12px 16px 12px; + padding: 13px 12px 21px 12px; } &:last-of-type { - padding: 16px 12px 8px 12px; + padding: 21px 12px 13px 12px; border-bottom: none; } `; From e51365656234805d3a436faede5acc9fda2cf280 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:13:27 +0900 Subject: [PATCH 07/39] =?UTF-8?q?fix:=20=EC=A7=84=ED=96=89=EB=8F=84=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=EC=97=90=20=EC=86=8C=EC=88=98=EC=A0=90=20?= =?UTF-8?q?=EB=82=B4=EB=A6=BC=20=EC=B2=98=EB=A6=AC=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/group/MyGroupCard.tsx | 2 +- src/components/group/RecordSection.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/group/MyGroupCard.tsx b/src/components/group/MyGroupCard.tsx index 8734c2b8..5e6dff8e 100644 --- a/src/components/group/MyGroupCard.tsx +++ b/src/components/group/MyGroupCard.tsx @@ -23,7 +23,7 @@ export const MyGroupCard = forwardRef((props,
- {group.userName}님의 진행도 {group.progress}% + {group.userName}님의 진행도 {Math.floor(group.progress || 0)}% diff --git a/src/components/group/RecordSection.tsx b/src/components/group/RecordSection.tsx index 2ad44cd6..e3d34de7 100644 --- a/src/components/group/RecordSection.tsx +++ b/src/components/group/RecordSection.tsx @@ -28,7 +28,7 @@ const RecordSection = ({ currentPage, progress, onClick }: RecordSectionProps) = 현재 페이지 {currentPage}
- {progress} + {Math.floor(progress)} %
From 43c99a236a8cb8fea825224ff06e09fb23925e3f Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:15:07 +0900 Subject: [PATCH 08/39] =?UTF-8?q?fix:=20=EA=B8=B0=EB=A1=9D=EC=9E=A5=20?= =?UTF-8?q?=EB=92=A4=EB=A1=9C=EA=B0=80=EA=B8=B0=20=EC=8B=9C=20=EB=AA=A8?= =?UTF-8?q?=EC=9E=84=20=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99=ED=95=98=EB=8F=84=EB=A1=9D=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 --- src/pages/memory/Memory.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/memory/Memory.tsx b/src/pages/memory/Memory.tsx index 083ae705..a0137dd1 100644 --- a/src/pages/memory/Memory.tsx +++ b/src/pages/memory/Memory.tsx @@ -189,7 +189,7 @@ const Memory = () => { // 이벤트 핸들러들 const handleBackClick = useCallback(() => { if (roomId) { - navigate(`/rooms/${roomId}`); + navigate(`/group/detail/joined/${roomId}`); } else { navigate('/group'); } From 250c0d47e770cf152c3ddfe4b7472383f89d640c Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:17:15 +0900 Subject: [PATCH 09/39] =?UTF-8?q?style:=20min-height:=20100vh=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/groupDetail/ParticipatedGroupDetail.styled.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/groupDetail/ParticipatedGroupDetail.styled.ts b/src/pages/groupDetail/ParticipatedGroupDetail.styled.ts index 055303d8..4618571c 100644 --- a/src/pages/groupDetail/ParticipatedGroupDetail.styled.ts +++ b/src/pages/groupDetail/ParticipatedGroupDetail.styled.ts @@ -9,7 +9,7 @@ export const ParticipatedWrapper = styled.div` justify-content: center; min-width: 320px; max-width: 767px; - height: 100%; + min-height: 100vh; margin: 0 auto; background-color: ${colors.black.main}; overflow: hidden; From 9622a6fb7a1db97e07caa9ab4c126f7d55c31190 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:26:30 +0900 Subject: [PATCH 10/39] =?UTF-8?q?refactor:=20=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=20=EC=A0=84=EC=B2=B4=20dim=20=EC=98=A4=EB=B2=84=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=20=EC=B6=94=EA=B0=80=20=ED=9B=84=20=ED=95=84=ED=84=B0?= =?UTF-8?q?=EB=A5=BC=20=EC=B5=9C=EC=83=81=EB=8B=A8=20z-index=EB=A1=9C=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory/RecordFilters/PageInputMode.tsx | 2 + .../memory/RecordFilters/RecordFilters.tsx | 72 +++++++++++++------ 2 files changed, 51 insertions(+), 23 deletions(-) diff --git a/src/components/memory/RecordFilters/PageInputMode.tsx b/src/components/memory/RecordFilters/PageInputMode.tsx index 4d9cede1..5e2f0e65 100644 --- a/src/components/memory/RecordFilters/PageInputMode.tsx +++ b/src/components/memory/RecordFilters/PageInputMode.tsx @@ -16,6 +16,7 @@ interface PageInputModeProps { onInputChange: (type: 'start' | 'end', value: string) => void; onReset: () => void; onConfirm: () => void; + onCancel: () => void; hasAnyInput: boolean; isValid: boolean; } @@ -26,6 +27,7 @@ const PageInputMode = ({ onInputChange, onReset, onConfirm, + onCancel, hasAnyInput, isValid, }: PageInputModeProps) => { diff --git a/src/components/memory/RecordFilters/RecordFilters.tsx b/src/components/memory/RecordFilters/RecordFilters.tsx index a69e1271..4318fe10 100644 --- a/src/components/memory/RecordFilters/RecordFilters.tsx +++ b/src/components/memory/RecordFilters/RecordFilters.tsx @@ -77,6 +77,15 @@ const RecordFilters = ({ } }; + const handleCancel = () => { + setShowInputMode(false); + setStartPage(''); + setEndPage(''); + if (onPageRangeClear) { + onPageRangeClear(); + } + }; + const handleOverallFilterClick = () => { onFilterChange('overall'); }; @@ -95,31 +104,48 @@ const RecordFilters = ({ const isPageInputMode = showInputMode && activeFilter === 'page' && !selectedPageRange; return ( - - {isPageInputMode ? ( - - ) : ( - + {isPageInputMode && ( +
)} - + + {isPageInputMode ? ( + + ) : ( + + )} + + ); }; From 6462d1642e3ae0347f66919c67dca6a6062e6433 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:31:40 +0900 Subject: [PATCH 11/39] =?UTF-8?q?fix:=20=EC=B4=9D=ED=8F=89=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=EB=90=9C=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EC=97=90=EC=84=9C=20=ED=81=B4=EB=A6=AD=20?= =?UTF-8?q?=EB=B0=A9=EC=A7=80=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/memory/RecordFilters/FilterButtons.styled.ts | 3 ++- src/components/memory/RecordFilters/FilterButtons.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/memory/RecordFilters/FilterButtons.styled.ts b/src/components/memory/RecordFilters/FilterButtons.styled.ts index f00e8dad..25dc2d24 100644 --- a/src/components/memory/RecordFilters/FilterButtons.styled.ts +++ b/src/components/memory/RecordFilters/FilterButtons.styled.ts @@ -18,7 +18,8 @@ export const FilterButton = styled.button<{ active: boolean; $disabled?: boolean $disabled ? semanticColors.text.tertiary : semanticColors.text.primary}; font-size: ${typography.fontSize.sm}; font-weight: ${typography.fontWeight.regular}; - cursor: pointer; + cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')}; + pointer-events: ${({ $disabled }) => ($disabled ? 'none' : 'auto')}; transition: all 0.2s; line-height: 24px; display: flex; diff --git a/src/components/memory/RecordFilters/FilterButtons.tsx b/src/components/memory/RecordFilters/FilterButtons.tsx index d5fc4982..ef0362b4 100644 --- a/src/components/memory/RecordFilters/FilterButtons.tsx +++ b/src/components/memory/RecordFilters/FilterButtons.tsx @@ -59,7 +59,7 @@ const FilterButtons = ({ 총평 보기 From b0d733456d8e51719f984f3217065305c16642de Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:39:52 +0900 Subject: [PATCH 12/39] =?UTF-8?q?fix:=20=EA=B8=B0=EB=A1=9D=20=EC=88=A8?= =?UTF-8?q?=EA=B8=B0=EA=B8=B0/=EA=B8=B0=EB=A1=9D=20=EB=B3=B4=EC=9D=B4?= =?UTF-8?q?=EA=B8=B0=20=EA=B0=9C=EB=B0=9C=EC=9A=A9=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MemoryContent/MemoryContent.styled.ts | 21 +------------------ .../memory/MemoryContent/MemoryContent.tsx | 9 +------- .../memory/RecordFilters/PageInputMode.tsx | 2 -- .../memory/RecordFilters/RecordFilters.tsx | 1 - src/pages/memory/Memory.tsx | 14 +------------ 5 files changed, 3 insertions(+), 44 deletions(-) diff --git a/src/components/memory/MemoryContent/MemoryContent.styled.ts b/src/components/memory/MemoryContent/MemoryContent.styled.ts index f3b9c167..c4211a93 100644 --- a/src/components/memory/MemoryContent/MemoryContent.styled.ts +++ b/src/components/memory/MemoryContent/MemoryContent.styled.ts @@ -1,5 +1,5 @@ import styled from '@emotion/styled'; -import { semanticColors, typography } from '../../../styles/global/global'; +import { semanticColors } from '../../../styles/global/global'; export const Content = styled.div` display: flex; @@ -23,22 +23,3 @@ export const ScrollableSection = styled.div` display: flex; flex-direction: column; `; - -export const DevButton = styled.button` - position: fixed; - top: 100px; - right: 20px; - background: ${semanticColors.button.fill.primary}; - color: ${semanticColors.text.primary}; - border: none; - padding: 8px 12px; - border-radius: 4px; - font-size: ${typography.fontSize.xs}; - cursor: pointer; - z-index: 100; - opacity: 0.8; - - &:hover { - opacity: 1; - } -`; diff --git a/src/components/memory/MemoryContent/MemoryContent.tsx b/src/components/memory/MemoryContent/MemoryContent.tsx index ce487c8b..dbbb3a20 100644 --- a/src/components/memory/MemoryContent/MemoryContent.tsx +++ b/src/components/memory/MemoryContent/MemoryContent.tsx @@ -7,7 +7,7 @@ import RecordInfoMessage from '../RecordInfoMessage'; import EmptyRecord from '../EmptyRecord'; import RecordList from './RecordList'; import UploadProgressBar from '../UploadProgressBar/UploadProgressBar'; -import { Content, FixedSection, ScrollableSection, DevButton } from './MemoryContent.styled'; +import { Content, FixedSection, ScrollableSection } from './MemoryContent.styled'; interface MemoryContentProps { activeTab: RecordType; @@ -16,7 +16,6 @@ interface MemoryContentProps { selectedSort: SortType; records: Record[]; selectedPageRange: { start: number; end: number } | null; - hasRecords: boolean; showUploadProgress: boolean; currentUserPage: number; onTabChange: (tab: RecordType) => void; @@ -24,7 +23,6 @@ interface MemoryContentProps { onSortChange: (sort: SortType) => void; onPageRangeClear: () => void; onPageRangeSet: (range: { start: number; end: number }) => void; - onToggleRecords: () => void; onUploadComplete: () => void; } @@ -35,21 +33,16 @@ const MemoryContent = ({ selectedSort, records, selectedPageRange, - hasRecords, showUploadProgress, onTabChange, onFilterChange, onSortChange, onPageRangeClear, onPageRangeSet, - onToggleRecords, onUploadComplete, }: MemoryContentProps) => { return ( - {/* 개발용 버튼 */} - {hasRecords ? '기록 숨기기' : '기록 보이기'} - {/* 고정 영역: 탭과 필터만 */} diff --git a/src/components/memory/RecordFilters/PageInputMode.tsx b/src/components/memory/RecordFilters/PageInputMode.tsx index 5e2f0e65..4d9cede1 100644 --- a/src/components/memory/RecordFilters/PageInputMode.tsx +++ b/src/components/memory/RecordFilters/PageInputMode.tsx @@ -16,7 +16,6 @@ interface PageInputModeProps { onInputChange: (type: 'start' | 'end', value: string) => void; onReset: () => void; onConfirm: () => void; - onCancel: () => void; hasAnyInput: boolean; isValid: boolean; } @@ -27,7 +26,6 @@ const PageInputMode = ({ onInputChange, onReset, onConfirm, - onCancel, hasAnyInput, isValid, }: PageInputModeProps) => { diff --git a/src/components/memory/RecordFilters/RecordFilters.tsx b/src/components/memory/RecordFilters/RecordFilters.tsx index 4318fe10..172dcf2f 100644 --- a/src/components/memory/RecordFilters/RecordFilters.tsx +++ b/src/components/memory/RecordFilters/RecordFilters.tsx @@ -127,7 +127,6 @@ const RecordFilters = ({ onInputChange={handleInputChange} onReset={handleReset} onConfirm={handleConfirm} - onCancel={handleCancel} hasAnyInput={hasAnyInput} isValid={isValid} /> diff --git a/src/pages/memory/Memory.tsx b/src/pages/memory/Memory.tsx index a0137dd1..7e5ca27c 100644 --- a/src/pages/memory/Memory.tsx +++ b/src/pages/memory/Memory.tsx @@ -61,9 +61,6 @@ const Memory = () => { // 업로드 프로그레스 상태 const [showUploadProgress, setShowUploadProgress] = useState(false); - // 개발용 상태 - 기록 유무 전환 - const [hasRecords, setHasRecords] = useState(true); - // 기록 데이터 const [myRecords, setMyRecords] = useState([]); const [groupRecords, setGroupRecords] = useState([]); @@ -156,11 +153,8 @@ const Memory = () => { // 현재 탭에 따른 기록 목록 결정 const currentRecords = useMemo(() => { - if (!hasRecords) { - return []; - } return activeTab === 'group' ? groupRecords : myRecords; - }, [activeTab, hasRecords, groupRecords, myRecords]); + }, [activeTab, groupRecords, myRecords]); // 정렬된 기록 목록 const sortedRecords = useMemo(() => { @@ -228,10 +222,6 @@ const Memory = () => { setActiveFilter('page'); }, []); - const handleToggleRecords = useCallback(() => { - setHasRecords(!hasRecords); - }, [hasRecords]); - const handleUploadComplete = useCallback(() => { setShowUploadProgress(false); }, []); @@ -272,7 +262,6 @@ const Memory = () => { selectedSort={selectedSort} records={filteredRecords} selectedPageRange={selectedPageRange} - hasRecords={hasRecords} showUploadProgress={showUploadProgress} currentUserPage={currentUserPage} onTabChange={handleTabChange} @@ -280,7 +269,6 @@ const Memory = () => { onSortChange={handleSortChange} onPageRangeClear={handlePageRangeClear} onPageRangeSet={handlePageRangeSet} - onToggleRecords={handleToggleRecords} onUploadComplete={handleUploadComplete} /> From 180c42f3a0d3434827b1e6fd7cc9752297f60be6 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 13:42:53 +0900 Subject: [PATCH 13/39] =?UTF-8?q?fix:=20=EB=B0=94=ED=85=80=EC=8B=9C?= =?UTF-8?q?=ED=8A=B8=20width=20=ED=99=94=EB=A9=B4=20=ED=81=AC=EA=B8=B0?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EC=B6=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommentBottomSheet/GlobalCommentBottomSheet.styled.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/common/CommentBottomSheet/GlobalCommentBottomSheet.styled.ts b/src/components/common/CommentBottomSheet/GlobalCommentBottomSheet.styled.ts index 350e6589..487af12e 100644 --- a/src/components/common/CommentBottomSheet/GlobalCommentBottomSheet.styled.ts +++ b/src/components/common/CommentBottomSheet/GlobalCommentBottomSheet.styled.ts @@ -19,8 +19,8 @@ export const Overlay = styled.div<{ isOpen: boolean }>` export const BottomSheet = styled.div<{ isOpen: boolean }>` width: 100%; - max-width: 540px; - min-width: 360px; + max-width: 767px; + min-width: 320px; background: ${colors.darkgrey.main}; border-radius: 20px 20px 0 0; display: flex; From c86994153717b2eda95b581c8d2e7fda58db50ae Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 15:44:25 +0900 Subject: [PATCH 14/39] =?UTF-8?q?fix:=20dim=20=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=20=EC=8B=9C=20=EB=AA=A8=EB=8B=AC=20=EB=8B=AB?= =?UTF-8?q?=ED=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/Modal/MoreMenu.tsx | 23 +++++-------------- .../memory/RecordItem/RecordItem.tsx | 8 ++++--- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/components/common/Modal/MoreMenu.tsx b/src/components/common/Modal/MoreMenu.tsx index a2165114..cbed4034 100644 --- a/src/components/common/Modal/MoreMenu.tsx +++ b/src/components/common/Modal/MoreMenu.tsx @@ -12,7 +12,7 @@ const MoreMenu = ({ type, }: MoreMenuProps) => { return ( - + onClose?.()}> {type === 'post' ? ( // post 타입: 기존 로직 유지 <> @@ -70,21 +70,16 @@ const Overlay = styled.div` bottom: 0; display: flex; justify-content: center; - align-items: center; - min-width: 320px; - max-width: 767px; - margin: 0 auto; + align-items: flex-end; + width: 100vw; + height: 100vh; background-color: rgba(18, 18, 18, 0.1); backdrop-filter: blur(2.5px); z-index: 1200; `; const ReportContainer = styled.div` - position: fixed; - left: 0; - right: 0; - bottom: 0; - + position: relative; display: flex; flex-direction: column; min-width: 320px; @@ -94,16 +89,11 @@ const ReportContainer = styled.div` padding: 20px; border-radius: 12px 12px 0px 0px; background-color: ${colors.darkgrey.main}; - z-index: 1201; `; // 3개 버튼을 위한 컨테이너 (핀하기 포함) const RecordContainer = styled.div` - position: fixed; - left: 0; - right: 0; - bottom: 0; - + position: relative; display: flex; flex-direction: column; min-width: 320px; @@ -112,7 +102,6 @@ const RecordContainer = styled.div` padding: 20px; border-radius: 12px 12px 0px 0px; background-color: ${colors.darkgrey.main}; - z-index: 1201; `; const Button = styled.div<{ variant: 'edit' | 'delete' | 'report' | 'pin' }>` diff --git a/src/components/memory/RecordItem/RecordItem.tsx b/src/components/memory/RecordItem/RecordItem.tsx index cea788b9..4d4d2c14 100644 --- a/src/components/memory/RecordItem/RecordItem.tsx +++ b/src/components/memory/RecordItem/RecordItem.tsx @@ -34,7 +34,7 @@ interface RecordItemProps { const RecordItem = ({ record, shouldBlur = false }: RecordItemProps) => { const navigate = useNavigate(); const { roomId } = useParams<{ roomId: string }>(); - const { openMoreMenu, openConfirm, openSnackbar } = usePopupActions(); + const { openMoreMenu, openConfirm, openSnackbar, closePopup } = usePopupActions(); const { id, @@ -281,10 +281,11 @@ const RecordItem = ({ record, shouldBlur = false }: RecordItemProps) => { openMoreMenu({ onReport: handleReport, + onClose: closePopup, }); }, 800); }, - [isMyRecord, openMoreMenu, handleReport], + [isMyRecord, openMoreMenu, handleReport, closePopup], ); const handleTouchMove = useCallback((e: React.TouchEvent) => { @@ -321,11 +322,12 @@ const RecordItem = ({ record, shouldBlur = false }: RecordItemProps) => { onEdit: handleEdit, onDelete: handleDeleteConfirm, onPin: handlePinConfirm, + onClose: closePopup, type: 'post', // 중요: post 타입으로 설정해야 핀하기 버튼이 표시됨 isWriter: true, // 내 기록임을 명시 }); } - }, [isMyRecord, openMoreMenu, handleEdit, handleDeleteConfirm, handlePinConfirm]); + }, [isMyRecord, openMoreMenu, handleEdit, handleDeleteConfirm, handlePinConfirm, closePopup]); return ( Date: Wed, 20 Aug 2025 15:49:57 +0900 Subject: [PATCH 15/39] =?UTF-8?q?fix:=20=EB=AA=A8=EC=9E=84=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=8B=9C=20=EC=83=9D=EC=84=B1=20=EC=A4=91=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/group/CreateGroup.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/group/CreateGroup.tsx b/src/pages/group/CreateGroup.tsx index e405b9ae..27be1d57 100644 --- a/src/pages/group/CreateGroup.tsx +++ b/src/pages/group/CreateGroup.tsx @@ -238,7 +238,7 @@ const CreateGroup = () => { } title="모임 만들기" - rightButton={isSubmitting ? '생성 중...' : '완료'} + rightButton="완료" onLeftClick={handleBackClick} onRightClick={handleCompleteClick} isNextActive={isFormValid} From 28baad166d2cf212af7db6615a1d4bece0ff12e8 Mon Sep 17 00:00:00 2001 From: fr0gydev Date: Wed, 20 Aug 2025 16:09:27 +0900 Subject: [PATCH 16/39] =?UTF-8?q?fix:=20=EA=B0=80=EC=9D=B4=EB=93=9C?= =?UTF-8?q?=ED=85=8D=EC=8A=A4=ED=8A=B8=20typo=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityPeriodSection.styled.ts | 12 ++++++++---- .../ActivityPeriodSection/ActivityPeriodSection.tsx | 8 ++++---- src/components/creategroup/RoomInfoSection.styled.ts | 6 +++--- src/components/creategroup/RoomInfoSection.tsx | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.styled.ts b/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.styled.ts index bd2fbc16..f9f15250 100644 --- a/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.styled.ts +++ b/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.styled.ts @@ -14,12 +14,16 @@ export const DateRangeContainer = styled.div` width: 100%; `; -export const DateGroup = styled.div` +export const DateGroup = styled.div<{ alignItems?: 'start' | 'end' | 'center' }>` display: flex; align-items: center; gap: 2px; flex: 1; - justify-content: center; + justify-content: ${({ alignItems = 'center' }) => { + if (alignItems === 'start') return 'flex-start'; + if (alignItems === 'end') return 'flex-end'; + return 'center'; + }}; `; export const WheelContainer = styled.div` @@ -89,11 +93,11 @@ export const WheelItem = styled.div<{ isSelected: boolean }>` } `; -export const DateUnitText = styled.div` +export const DateUnitText = styled.div<{ isLast?: boolean }>` color: ${semanticColors.text.primary}; font-size: ${typography.fontSize.xs}; font-weight: ${typography.fontWeight.regular}; - margin-right: 6px; + margin-right: ${({ isLast }) => (isLast ? '0px' : '6px')}; `; export const SeparatorText = styled.div` diff --git a/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.tsx b/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.tsx index 35acd25d..8d1d3895 100644 --- a/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.tsx +++ b/src/components/creategroup/ActivityPeriodSection/ActivityPeriodSection.tsx @@ -189,7 +189,7 @@ const ActivityPeriodSection = ({ {/* 시작일 */} - + - + ~ {/* 종료일 */} - + - + diff --git a/src/components/creategroup/RoomInfoSection.styled.ts b/src/components/creategroup/RoomInfoSection.styled.ts index 87637b48..d1b0c68d 100644 --- a/src/components/creategroup/RoomInfoSection.styled.ts +++ b/src/components/creategroup/RoomInfoSection.styled.ts @@ -1,5 +1,5 @@ import styled from '@emotion/styled'; -import { typography, semanticColors } from '../../styles/global/global'; +import { typography, semanticColors, colors } from '../../styles/global/global'; export const TextAreaBox = styled.div` position: relative; @@ -13,7 +13,7 @@ export const TextArea = styled.textarea` border: none; outline: none; color: ${semanticColors.text.primary}; - font-size: ${typography.fontSize.base}; + font-size: ${typography.fontSize.sm}; width: 100%; resize: none; font-family: ${typography.fontFamily.primary}; @@ -22,7 +22,7 @@ export const TextArea = styled.textarea` margin: 0; &::placeholder { - color: ${semanticColors.text.primary}; + color: ${colors.grey[300]}; font-size: ${typography.fontSize.sm}; } `; diff --git a/src/components/creategroup/RoomInfoSection.tsx b/src/components/creategroup/RoomInfoSection.tsx index b4ecdc29..e3b5f48c 100644 --- a/src/components/creategroup/RoomInfoSection.tsx +++ b/src/components/creategroup/RoomInfoSection.tsx @@ -20,7 +20,7 @@ const RoomInfoSection = ({ 방 제목