From 0af70c1dca769238dfae6ec75fb1e1487671d041 Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 04:28:44 +0900 Subject: [PATCH 01/20] =?UTF-8?q?style:=20=EC=95=8C=EB=A6=BC=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20"=EC=95=8C=EB=A6=BC"=20=ED=8F=B0=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/components/NotificationPanel/NotificationPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/components/NotificationPanel/NotificationPanel.tsx b/src/shared/components/NotificationPanel/NotificationPanel.tsx index 5531ca65..8539d498 100644 --- a/src/shared/components/NotificationPanel/NotificationPanel.tsx +++ b/src/shared/components/NotificationPanel/NotificationPanel.tsx @@ -6,7 +6,7 @@ const NotificationPanel = forwardRef((_, ref) => { ref={ref} className="absolute right-[3.2rem] top-[11.5rem] h-[38.2rem] w-[36.9rem] rounded-[14px] bg-gray-bg-03 p-[2.8rem] drop-shadow-calendarDrop" > -

알림

+

알림

아직 받은 알림이 없어요.

From 04e773ef0a39e14df14db2591548b747ef20f4e6 Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 04:32:25 +0900 Subject: [PATCH 02/20] =?UTF-8?q?fix:=20=EC=84=A4=EC=A0=95=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EB=AC=B8=EA=B5=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ModalContentsSetting/AccountContent/AccountContent.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/shared/layout/Sidebar/ModalContentsSetting/AccountContent/AccountContent.tsx b/src/shared/layout/Sidebar/ModalContentsSetting/AccountContent/AccountContent.tsx index b4b9996a..31d02a39 100644 --- a/src/shared/layout/Sidebar/ModalContentsSetting/AccountContent/AccountContent.tsx +++ b/src/shared/layout/Sidebar/ModalContentsSetting/AccountContent/AccountContent.tsx @@ -79,7 +79,7 @@ const AccountContent = ({ ...props }: AccountContentProps) => {

데스크톱 푸시 알림

-

데스크톱 앱에서 작성의 푸시 알림을 즉시 받으세요.

+

데스크톱 앱에서 모립의 푸시 알림을 즉시 받으세요.

@@ -100,7 +100,9 @@ const AccountContent = ({ ...props }: AccountContentProps) => {

내 계정 삭제

-

본 기기를 포함한 모든 기기에서 로그아웃합니다.

+

+ 계정을 영구적으로 삭제하고 모든 워크스페이스에서 엑세스 권한을 제거합니다. +

+ deleteFriend({ friendId: friend.id })} label="친구삭제" textColor="red" /> From aab9bebc455cb3ce74623f8134b96ad9e1e70cf1 Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 05:20:14 +0900 Subject: [PATCH 06/20] =?UTF-8?q?refactor:=20=ED=95=A0=20=EC=9D=BC=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EC=99=84=EB=A3=8C=EB=90=9C=20=EC=9D=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=EC=8B=9C,=20=ED=83=80=EC=9D=B4?= =?UTF-8?q?=EB=A8=B8=20=EC=A0=95=EC=A7=80=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx index 2e8561eb..c64a90aa 100644 --- a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx +++ b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx @@ -82,6 +82,11 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer // 진행 중인 할일을 완료 처리했으면 완료 목록 토글 활성화 if (isOngoing) { setCompletedTodoToggle(true); + + // 현재 선택된 할 일이 완료된 경우 타이머 정지 + if (selectedTask.id === taskId && isPlaying && actions.stopCurrentTimer) { + actions.stopCurrentTimer(taskId); + } } queryClient.invalidateQueries({ @@ -91,7 +96,7 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer }, ); }, - [toggleTaskStatus, todayFormattedDate, queryClient], + [toggleTaskStatus, todayFormattedDate, queryClient, selectedTask.id, isPlaying, actions], ); // 할일 항목 렌더링 함수 - 최적화됨 From fa5179c57504e4710c135d9f8b931a9d7da95d9f Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 05:32:18 +0900 Subject: [PATCH 07/20] =?UTF-8?q?refactor:=20=ED=83=80=EC=9D=B4=EB=A8=B8?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=99=84=EB=A3=8C=EB=90=9C=20?= =?UTF-8?q?=ED=95=A0=20=EC=9D=BC=20=EC=B9=B4=EB=93=9C=EC=9D=B8=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20=ED=83=80=EC=9D=B4=EB=A8=B8=20=EC=8B=A4=ED=96=89=20?= =?UTF-8?q?=EB=A7=89=EA=B8=B0=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/MainTimer/MainTimer.tsx | 28 ++++++++++++++++--- .../ButtonTimerPlay/ButtonTimerPlay.tsx | 19 +++++++++++-- .../MainTimer/TimerDisplay/TimerDisplay.tsx | 12 ++++++-- 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/pages/TimerPage/MainTimer/MainTimer.tsx b/src/pages/TimerPage/MainTimer/MainTimer.tsx index 042f29ce..78dd9aec 100644 --- a/src/pages/TimerPage/MainTimer/MainTimer.tsx +++ b/src/pages/TimerPage/MainTimer/MainTimer.tsx @@ -1,6 +1,9 @@ -import React, { useCallback } from 'react'; +import React, { useCallback, useMemo } from 'react'; + +import { splitTasksByCompletion } from '@/shared/utils/timer'; import { getFormattedTimeInfo } from '@/pages/TimerPage/utils/timeFormat'; +import { useGetTimerTodos } from '@/shared/apisV2/timer/timer.queries'; import { useTimerContext } from '../contexts/TimerContext'; import TimerDisplay from './TimerDisplay/TimerDisplay'; @@ -13,18 +16,34 @@ import TimerHeader from './TimerHeader/TimerHeader'; */ const MainTimer = () => { // 타이머 컨텍스트에서 필요한 상태와 액션만 가져오기 - const { timer, elapsedTime, totalElapsedTimeOfToday, isPlaying, selectedTask, actions } = useTimerContext(); + const { todayFormattedDate, timer, elapsedTime, totalElapsedTimeOfToday, isPlaying, selectedTask, actions } = + useTimerContext(); + + // 할일 데이터 조회 + const { data: todosData } = useGetTimerTodos({ targetDate: todayFormattedDate }); + + // 완료된 할 일 목록 가져오기 + const { completedTodos } = useMemo(() => { + const todos = todosData?.data?.task ?? []; + return splitTasksByCompletion(todos); + }, [todosData]); // 작업이 선택되어 있는지 여부 const hasSelectedTask = selectedTask.id !== null; + // 선택된 작업이 완료되었는지 확인 + const isSelectedTaskCompleted = useCallback(() => { + if (!selectedTask.id) return false; + return completedTodos.some((todo) => todo.id === selectedTask.id); + }, [completedTodos, selectedTask.id]); + // 재생/정지 토글 핸들러 - 작업이 선택되지 않은 경우 처리 방지 const handlePlayPauseToggle = useCallback(() => { - if (!hasSelectedTask) return; + if (!hasSelectedTask || isSelectedTaskCompleted()) return; // 현재 상태의 반대로 토글 actions.togglePlay(!isPlaying); - }, [isPlaying, hasSelectedTask, actions]); + }, [isPlaying, hasSelectedTask, isSelectedTaskCompleted, actions]); // 표시할 시간 정보 계산 - 유틸 함수로 분리하여 관심사 분리 const timeInfo = getFormattedTimeInfo(timer, elapsedTime, totalElapsedTimeOfToday); @@ -45,6 +64,7 @@ const MainTimer = () => { timer={timer} isPlaying={isPlaying} onToggle={handlePlayPauseToggle} + disabled={!hasSelectedTask || isSelectedTaskCompleted()} />
); diff --git a/src/pages/TimerPage/MainTimer/TimerDisplay/ButtonTimerPlay/ButtonTimerPlay.tsx b/src/pages/TimerPage/MainTimer/TimerDisplay/ButtonTimerPlay/ButtonTimerPlay.tsx index d7241329..f6c0ac87 100644 --- a/src/pages/TimerPage/MainTimer/TimerDisplay/ButtonTimerPlay/ButtonTimerPlay.tsx +++ b/src/pages/TimerPage/MainTimer/TimerDisplay/ButtonTimerPlay/ButtonTimerPlay.tsx @@ -1,3 +1,5 @@ +import { MouseEvent } from 'react'; + import PauseIcon from '@/shared/assets/svgs/defaultpause.svg?react'; import PlayIcon from '@/shared/assets/svgs/defaultplay.svg?react'; import HoverPauseIcon from '@/shared/assets/svgs/hoverpause.svg?react'; @@ -6,14 +8,27 @@ import HoverPlayIcon from '@/shared/assets/svgs/hoverplay.svg?react'; interface ButtonTimerPlayProps { onClick: () => void; isPlaying: boolean; + disabled?: boolean; } -const ButtonTimerPlay = ({ onClick, isPlaying }: ButtonTimerPlayProps) => { +const ButtonTimerPlay = ({ onClick, isPlaying, disabled = false }: ButtonTimerPlayProps) => { const IconComponent = isPlaying ? PauseIcon : PlayIcon; const HoverIconComponent = isPlaying ? HoverPauseIcon : HoverPlayIcon; + const handleClick = (e: MouseEvent) => { + if (disabled) { + e.preventDefault(); + return; + } + onClick(); + }; + return ( - diff --git a/src/pages/TimerPage/MainTimer/TimerDisplay/TimerDisplay.tsx b/src/pages/TimerPage/MainTimer/TimerDisplay/TimerDisplay.tsx index 7909fe97..754a9453 100644 --- a/src/pages/TimerPage/MainTimer/TimerDisplay/TimerDisplay.tsx +++ b/src/pages/TimerPage/MainTimer/TimerDisplay/TimerDisplay.tsx @@ -14,6 +14,7 @@ interface TimerDisplayProps { timer: number; isPlaying: boolean; onToggle: () => void; + disabled?: boolean; } /** @@ -21,7 +22,14 @@ interface TimerDisplayProps { * * 타이머의 시간 표시, 상태 텍스트 및 재생/정지 버튼을 포함하는 UI */ -const TimerDisplay = ({ statusText, formattedTimeText, timer, isPlaying, onToggle }: TimerDisplayProps) => { +const TimerDisplay = ({ + statusText, + formattedTimeText, + timer, + isPlaying, + onToggle, + disabled = false, +}: TimerDisplayProps) => { return (
@@ -32,7 +40,7 @@ const TimerDisplay = ({ statusText, formattedTimeText, timer, isPlaying, onToggl {formattedTimeText}
- + ); From f50457db264ceeb8719d296e4ff07dcffbd7561b Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 05:42:03 +0900 Subject: [PATCH 08/20] =?UTF-8?q?refactor:=20=ED=83=80=EC=9D=B4=EB=A8=B8?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=EB=90=9C=20=ED=95=A0=20=EC=9D=BC=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=EC=9D=B8=20=EA=B2=BD=EC=9A=B0=20line-through=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/MainTimer/MainTimer.tsx | 1 + .../MainTimer/TimerHeader/TimerHeader.tsx | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/pages/TimerPage/MainTimer/MainTimer.tsx b/src/pages/TimerPage/MainTimer/MainTimer.tsx index 78dd9aec..a7970b1e 100644 --- a/src/pages/TimerPage/MainTimer/MainTimer.tsx +++ b/src/pages/TimerPage/MainTimer/MainTimer.tsx @@ -55,6 +55,7 @@ const MainTimer = () => { selectedTaskName={selectedTask.name} selectedTaskCategoryName={selectedTask.categoryName} hasSelectedTask={hasSelectedTask} + isCompleted={isSelectedTaskCompleted()} /> {/* 타이머 디스플레이 - 시간 표시 및 제어 버튼 */} diff --git a/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx b/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx index 271e5b4b..b1396388 100644 --- a/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx +++ b/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx @@ -7,6 +7,7 @@ interface TimerHeaderProps { selectedTaskName: string; selectedTaskCategoryName: string; hasSelectedTask: boolean; + isCompleted?: boolean; } /** @@ -14,7 +15,12 @@ interface TimerHeaderProps { * * 선택된 할일의 이름과 카테고리를 표시하거나, 할일이 선택되지 않은 경우 안내 메시지를 표시. */ -const TimerHeader = ({ selectedTaskName, selectedTaskCategoryName, hasSelectedTask }: TimerHeaderProps) => { +const TimerHeader = ({ + selectedTaskName, + selectedTaskCategoryName, + hasSelectedTask, + isCompleted = false, +}: TimerHeaderProps) => { if (!hasSelectedTask) { return (
@@ -23,10 +29,16 @@ const TimerHeader = ({ selectedTaskName, selectedTaskCategoryName, hasSelectedTa ); } + const completedStyle = isCompleted ? 'line-through' : ''; + return (
-

{selectedTaskName}

-

{selectedTaskCategoryName}

+

+ {selectedTaskName} +

+

+ {selectedTaskCategoryName} +

); }; From 0bf10faf708bdc822e73aebc24d7fa27d7b94de7 Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Wed, 7 May 2025 06:01:54 +0900 Subject: [PATCH 09/20] =?UTF-8?q?fix:=20=ED=83=80=EC=9D=B4=EB=A8=B8?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=95=A0=20=EC=9D=BC=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20duration=20=EB=B2=84=ED=8A=BC=20hover=20=EB=A7=89?= =?UTF-8?q?=EA=B8=B0=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx | 1 + src/shared/components/BoxTodo/BoxTodo.tsx | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx index c64a90aa..a70a36d9 100644 --- a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx +++ b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx @@ -110,6 +110,7 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer onToggleComplete={() => handleToggleTodoComplete(todo.id, isOngoing)} timerIncreasedTime={getTimerIncreasedTime(todo.id, todo.elapsedTime, selectedTask.id, timer)} undeletable={true} + disableHoverCalendar={true} /> ), [handleTodoClick, handleToggleTodoComplete, selectedTask.id, timer], diff --git a/src/shared/components/BoxTodo/BoxTodo.tsx b/src/shared/components/BoxTodo/BoxTodo.tsx index 627c9195..9593828f 100644 --- a/src/shared/components/BoxTodo/BoxTodo.tsx +++ b/src/shared/components/BoxTodo/BoxTodo.tsx @@ -38,6 +38,7 @@ interface BoxTodoProps { onPatchTask?: (taskId: number, name: string, startDate: string, endDate: string | null) => void; activeCalendarTask?: boolean; undeletable?: boolean; + disableHoverCalendar?: boolean; } const BoxTodo = ({ @@ -59,6 +60,7 @@ const BoxTodo = ({ onPatchTask, activeCalendarTask, undeletable = false, + disableHoverCalendar = false, }: BoxTodoProps) => { const { mutate: deleteTask } = useDeleteTask(); @@ -175,7 +177,9 @@ const BoxTodo = ({
-
@@ -352,6 +376,8 @@ const AllowedServicePage = () => { {({ isModalOpen }) => } + + {isNotificationVisible && } ); }; From 7e23e4fbaca96ce96e7a3ba1f0142a8a7e2f5e01 Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Thu, 8 May 2025 02:40:16 +0900 Subject: [PATCH 14/20] =?UTF-8?q?refactor:=20Boxtodo=20=EC=99=84=EB=A3=8C?= =?UTF-8?q?=20=EB=B2=84=ED=8A=BC=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=A0=84?= =?UTF-8?q?=ED=8C=8C=20=EB=A7=89=EA=B8=B0=20=EB=B0=8F=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EB=90=9C=20=ED=95=A0=20=EC=9D=BC=EC=9D=98=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EA=B0=80=20=EB=B3=80=EA=B2=BD=EB=90=98=EB=A9=B4=20=ED=83=80?= =?UTF-8?q?=EC=9D=B4=EB=A8=B8=20=EC=A0=95=EC=A7=80=20=EB=B0=8F=20=EB=82=A8?= =?UTF-8?q?=EC=9D=80=20=ED=95=A0=20=EC=9D=BC=20=EC=A4=91=20=EC=B2=AB?= =?UTF-8?q?=EB=B2=88=20=EC=A7=B8=20=ED=95=A0=20=EC=9D=BC=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TimerPage/SideMenuTimer/SideMenuTimer.tsx | 30 +++++++++---------- src/shared/components/BoxTodo/BoxTodo.tsx | 10 +++++-- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx index 98a80943..3b4dcfae 100644 --- a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx +++ b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx @@ -82,20 +82,15 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer // 진행 중인 할일을 완료 처리했으면 완료 목록 토글 활성화 if (isOngoing) { setCompletedTodoToggle(true); + } - // 현재 선택된 할 일이 완료된 경우 - if (selectedTask.id === taskId) { - // 타이머 정지 - if (isPlaying && actions.stopCurrentTimer) { - actions.stopCurrentTimer(taskId); - } - - // 남아있는 진행 중인 할 일 중 첫 번째를 선택 - const remainingTodos = ongoingTodos.filter((todo) => todo.id !== taskId); - if (remainingTodos.length > 0) { - const nextTodo = remainingTodos[0]; - actions.selectTask(nextTodo.id, nextTodo.elapsedTime, nextTodo.name, nextTodo.categoryName); - } + // 선택된 할 일의 상태가 변경되면 타이머 정지 및 남은 할 일 중 첫번 째 할 일 선택 + if (selectedTask.id === taskId && actions.stopCurrentTimer) { + actions.stopCurrentTimer(taskId); + const remainingTodos = ongoingTodos.filter((todo) => todo.id !== taskId); + if (remainingTodos.length > 0) { + const next = remainingTodos[0]; + actions.selectTask(next.id, next.elapsedTime, next.name, next.categoryName); } } @@ -106,7 +101,7 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer }, ); }, - [toggleTaskStatus, todayFormattedDate, queryClient, selectedTask.id, isPlaying, actions, ongoingTodos], + [toggleTaskStatus, todayFormattedDate, queryClient, selectedTask.id, actions, ongoingTodos], ); // 할일 항목 렌더링 함수 - 최적화됨 @@ -116,8 +111,11 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer key={todo.id} {...todo} isSelected={todo.id === selectedTask.id} - onClick={() => handleTodoClick(todo)} - onToggleComplete={() => handleToggleTodoComplete(todo.id, isOngoing)} + onClick={isOngoing ? () => handleTodoClick(todo) : undefined} + onToggleComplete={(e) => { + e.stopPropagation(); + handleToggleTodoComplete(todo.id, isOngoing); + }} timerIncreasedTime={getTimerIncreasedTime(todo.id, todo.elapsedTime, selectedTask.id, timer)} undeletable={true} disableHoverCalendar={true} diff --git a/src/shared/components/BoxTodo/BoxTodo.tsx b/src/shared/components/BoxTodo/BoxTodo.tsx index 602a303a..a2ea9b4b 100644 --- a/src/shared/components/BoxTodo/BoxTodo.tsx +++ b/src/shared/components/BoxTodo/BoxTodo.tsx @@ -29,7 +29,7 @@ interface BoxTodoProps { isSelected?: boolean; selectedNumber?: number; onClick?: () => void; - onToggleComplete?: () => void; + onToggleComplete?: (e: MouseEvent) => void; updateTodayTodos?: (todo: Omit) => void; clickable?: boolean; addingComplete?: boolean; @@ -136,7 +136,13 @@ const BoxTodo = ({
- {isEditing ? ( From ad93bd30f2e7c23131a2bd7bd50d4cf36f66db1e Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Fri, 9 May 2025 03:10:42 +0900 Subject: [PATCH 15/20] =?UTF-8?q?fix:=20=ED=95=A0=20=EC=9D=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EC=A4=91=EC=9D=B8=20=EC=83=81=ED=83=9C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=ED=81=B4=EB=A6=AD=20=EB=A7=89=EA=B8=B0=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/HomePage/BoxCategory/BoxCategory.tsx | 9 ++++++--- .../HomePage/BoxTodayTodo/BoxTodayTodo.tsx | 1 + .../StatusAddBoxTodayTodo.tsx | 3 +++ src/pages/HomePage/HomePage.tsx | 18 ++++++++++++++---- src/shared/components/BoxTodo/BoxTodo.tsx | 2 ++ 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/pages/HomePage/BoxCategory/BoxCategory.tsx b/src/pages/HomePage/BoxCategory/BoxCategory.tsx index 8330f4a5..ac7795e2 100644 --- a/src/pages/HomePage/BoxCategory/BoxCategory.tsx +++ b/src/pages/HomePage/BoxCategory/BoxCategory.tsx @@ -244,7 +244,10 @@ const BoxCategory = ({ onKeyDown={handleKeyDown} /> ) : ( -

+

{title}

)} @@ -257,12 +260,12 @@ const BoxCategory = ({ - + diff --git a/src/pages/HomePage/BoxTodayTodo/BoxTodayTodo.tsx b/src/pages/HomePage/BoxTodayTodo/BoxTodayTodo.tsx index e2017c2d..e0af9917 100644 --- a/src/pages/HomePage/BoxTodayTodo/BoxTodayTodo.tsx +++ b/src/pages/HomePage/BoxTodayTodo/BoxTodayTodo.tsx @@ -55,6 +55,7 @@ const BoxTodayTodo = ({ cancelComplete={cancelComplete} addingComplete={addingComplete} onCreateTodayTodos={onCreateTodayTodos} + addingTodayTodoStatus={addingTodayTodoStatus} /> ) : ( diff --git a/src/pages/HomePage/BoxTodayTodo/StatusAddBoxTodayTodo/StatusAddBoxTodayTodo.tsx b/src/pages/HomePage/BoxTodayTodo/StatusAddBoxTodayTodo/StatusAddBoxTodayTodo.tsx index a0d6849f..c704f646 100644 --- a/src/pages/HomePage/BoxTodayTodo/StatusAddBoxTodayTodo/StatusAddBoxTodayTodo.tsx +++ b/src/pages/HomePage/BoxTodayTodo/StatusAddBoxTodayTodo/StatusAddBoxTodayTodo.tsx @@ -24,6 +24,7 @@ interface StatusAddBoxTodayTodoProps { cancelComplete: () => void; addingComplete: boolean; onCreateTodayTodos: () => void; + addingTodayTodoStatus: boolean; } const StatusAddBoxTodayTodo = ({ @@ -35,6 +36,7 @@ const StatusAddBoxTodayTodo = ({ cancelComplete, addingComplete, onCreateTodayTodos, + addingTodayTodoStatus, }: StatusAddBoxTodayTodoProps) => { const { data: allowedServiceList } = useGetPopoverAllowedServiceList(); const registerServiceModalRef = useRef(null); @@ -82,6 +84,7 @@ const StatusAddBoxTodayTodo = ({ selectedNumber={selectedNumber} updateTodayTodos={deleteTodayTodos} addingComplete={addingComplete} + addingTodayTodoStatus={addingTodayTodoStatus} /> ); diff --git a/src/pages/HomePage/HomePage.tsx b/src/pages/HomePage/HomePage.tsx index ecd55add..9181d23c 100644 --- a/src/pages/HomePage/HomePage.tsx +++ b/src/pages/HomePage/HomePage.tsx @@ -405,8 +405,13 @@ const HomePage = () => { )} -
)} @@ -425,8 +430,13 @@ const HomePage = () => { {dailyCategoryTask.length > 2 && (
-
)} diff --git a/src/shared/components/BoxTodo/BoxTodo.tsx b/src/shared/components/BoxTodo/BoxTodo.tsx index a2ea9b4b..034f0900 100644 --- a/src/shared/components/BoxTodo/BoxTodo.tsx +++ b/src/shared/components/BoxTodo/BoxTodo.tsx @@ -39,6 +39,7 @@ interface BoxTodoProps { activeCalendarTask?: boolean; undeletable?: boolean; disableHoverCalendar?: boolean; + addingTodayTodoStatus?: boolean; } const BoxTodo = ({ @@ -61,6 +62,7 @@ const BoxTodo = ({ activeCalendarTask, undeletable = false, disableHoverCalendar = false, + addingTodayTodoStatus = false, }: BoxTodoProps) => { const { mutate: deleteTask } = useDeleteTask(); From d093c00937c05f3b3d8dc434b15ee90ef2611c2c Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Fri, 9 May 2025 03:25:57 +0900 Subject: [PATCH 16/20] =?UTF-8?q?fix:=20=ED=83=80=EC=9D=B4=EB=A8=B8?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=99=84=EB=A3=8C=EB=90=9C=20?= =?UTF-8?q?=ED=95=A0=20=EC=9D=BC=20=EC=B9=B4=EB=93=9C=20=ED=81=B4=EB=A6=AD?= =?UTF-8?q?=20=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx index 3b4dcfae..a6b67485 100644 --- a/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx +++ b/src/pages/TimerPage/SideMenuTimer/SideMenuTimer.tsx @@ -111,7 +111,7 @@ const SideMenuTimer = ({ ongoingTodos = [], completedTodos = [] }: SideMenuTimer key={todo.id} {...todo} isSelected={todo.id === selectedTask.id} - onClick={isOngoing ? () => handleTodoClick(todo) : undefined} + onClick={() => handleTodoClick(todo)} onToggleComplete={(e) => { e.stopPropagation(); handleToggleTodoComplete(todo.id, isOngoing); From 1734d1a380fe7dac9723c66e929e8e91e61d100b Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Fri, 9 May 2025 15:51:17 +0900 Subject: [PATCH 17/20] =?UTF-8?q?codereview:=20=ED=83=80=EC=9D=B4=EB=A8=B8?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=BA=90=EB=9F=AC=EC=85=80=20abs?= =?UTF-8?q?olute=20=EC=A0=81=EC=9A=A9=ED=95=B4=EC=84=9C=20=EC=8A=A4?= =?UTF-8?q?=ED=83=80=EC=9D=BC=EB=A7=81=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TimerPage/Carousel/CarouselFriend.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/TimerPage/Carousel/CarouselFriend.tsx b/src/pages/TimerPage/Carousel/CarouselFriend.tsx index dabaada7..e0b6fbf9 100644 --- a/src/pages/TimerPage/Carousel/CarouselFriend.tsx +++ b/src/pages/TimerPage/Carousel/CarouselFriend.tsx @@ -41,9 +41,9 @@ const CarouselFriend = memo(function CarouselFriend({ const ClockIcon = isPlaying ? ActivatedClockIcon : DeactivatedClockIcon; return ( -
+
{/* 프로필 이미지 영역 */} - + {`${name}의 {/* 타이머 표시 영역 */} -
+
{formattedTime} From d21eda3fd4af1bfb24b86b183b39a27487e9febc Mon Sep 17 00:00:00 2001 From: KIMGEONHWI Date: Fri, 9 May 2025 19:16:09 +0900 Subject: [PATCH 18/20] =?UTF-8?q?codereview:=20=EC=83=81=EC=95=84=20?= =?UTF-8?q?=EC=BD=94=EB=A6=AC=20=EB=B0=98=EC=98=81=20(#308)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TimerPage/MainTimer/TimerHeader/TimerHeader.tsx | 10 ++-------- src/shared/components/BoxTodo/BoxTodo.tsx | 3 +-- .../AccountContent/AccountContent.tsx | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx b/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx index b1396388..0004b209 100644 --- a/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx +++ b/src/pages/TimerPage/MainTimer/TimerHeader/TimerHeader.tsx @@ -29,16 +29,10 @@ const TimerHeader = ({ ); } - const completedStyle = isCompleted ? 'line-through' : ''; - return (
-

- {selectedTaskName} -

-

- {selectedTaskCategoryName} -

+

{selectedTaskName}

+

{selectedTaskCategoryName}

); }; diff --git a/src/shared/components/BoxTodo/BoxTodo.tsx b/src/shared/components/BoxTodo/BoxTodo.tsx index 034f0900..6adf8416 100644 --- a/src/shared/components/BoxTodo/BoxTodo.tsx +++ b/src/shared/components/BoxTodo/BoxTodo.tsx @@ -62,7 +62,6 @@ const BoxTodo = ({ activeCalendarTask, undeletable = false, disableHoverCalendar = false, - addingTodayTodoStatus = false, }: BoxTodoProps) => { const { mutate: deleteTask } = useDeleteTask(); @@ -188,7 +187,7 @@ const BoxTodo = ({