Skip to content

[REFACTOR] 투두 생성/수정 모달 시간·태그·아이콘 UI 개선 및 버그 수정 - #189

Merged
kimminna merged 6 commits into
developfrom
refactor/web/188-todo-modal-time-tag-icon
Jul 14, 2026
Merged

[REFACTOR] 투두 생성/수정 모달 시간·태그·아이콘 UI 개선 및 버그 수정#189
kimminna merged 6 commits into
developfrom
refactor/web/188-todo-modal-time-tag-icon

Conversation

@kimminna

Copy link
Copy Markdown
Member

ISSUE 🔗

close #188



What is this PR? 🔍

투두 생성/수정 모달의 시간 선택, 태그 다국어 처리, 아이콘 크기, 하위 할일 입력, 툴바 트리거 색상 상태를 정리했습니다.

배경

  • 기존 구조: 시간(duration) 필드가 시:분(hh:mm)과 분:초(mm:ss) 표현이 화면/훅마다 혼용되어 있었고, 기본 태그 이름은 서버가 내려주는 문자열을 그대로 표시해 로케일 전환이 반영되지 않았습니다.
  • 발생 문제: 수동 입력이나 AI 추천 재요청 시 duration이 잘못된 단위로 변환되거나, 사용자가 이미 선택한 값을 AI 응답이 덮어쓰는 등 시간 관련 버그가 여러 번 발생했습니다. 하위 할일 입력에서는 한글 조합(IME) 중 Enter 처리로 잔여 글자가 다음 입력칸에 남는 문제도 있었습니다.
  • 해결 방향: duration 필드를 분:초(mm:ss) 단일 표현으로 통일하고, 트리거에 보여주는 시:분 표기는 별도 변환 함수로 파생해 실제 제출 값과 분리했습니다. 태그는 tagId 기반 매핑으로 다국어 처리를 통일했습니다.

하위 할일 입력

  • 변경 요약: Enter 키다운 처리에서 한글 조합 중인 입력을 무시하도록 했습니다.
  • 이유: 한글 입력기가 마지막 글자를 조합 중일 때 Enter가 눌리면 keydown이 조합 완료 전에 발생해, 조합이 끝나며 커밋되는 글자가 이미 포커스가 이동한 다음 입력칸에 남았습니다.
  • 구현 방식: handleInputKeyDown의 Enter 분기 맨 앞에 event.nativeEvent.isComposing 체크를 추가해 조합 중이면 그대로 반환하도록 했습니다.

태그 다국어 처리

  • 변경 요약: 기본 태그 4종(일상/업무/운동/과제)을 tagId로 매핑해 next-intl로 번역하도록 통일했습니다.
  • 이유: 생성 모달의 태그 드롭다운은 서버 tag.name 문자열을 그대로 표시해 로케일을 바꿔도 번역되지 않았습니다. 홈 목록·설정 화면은 이미 tagId 기반 매핑을 쓰고 있었지만 생성 모달만 빠져 있었습니다.
  • 구현 방식: getDefaultTagLabelKey(tagId)가 tagId 1~4를 알려진 라벨 키로 매핑하면 tCommon(\tag.${key}`)로 번역하고, 그 외(사용자 정의 태그)는 원본 이름을 그대로 씁니다. 생성 모달의 use-tag-field.tsx`에도 동일 로직을 적용해 세 곳(홈/설정/생성)이 같은 매핑을 공유합니다.

아이콘 셀렉터 크기

  • 변경 요약: 투두 아이콘 셀렉터의 글리프 크기를 18px에서 24px로 키웠습니다.
  • 이유: 아이콘을 담는 버튼은 24px(size-6)인데 내부 아이콘은 18px(size-4.5)로 렌더링되어 버튼 안에 여백이 남았습니다.
  • 구현 방식: IconGraphic의 className을 size-4.5에서 size-6으로 변경해 버튼 크기와 맞췄습니다.

시간(duration) 필드 정합성

  • 변경 요약: duration 문자열의 단위를 분:초(mm:ss)로 통일하고, 관련 변환 함수를 정리했습니다.
  • 이유: 스키마의 DURATION_PATTERN(\d{1,3}:[0-5]\d)은 분이 60을 넘을 수 있는 분:초 형식을 전제로 하는데, 일부 훅은 이를 시:분(hh:mm)으로 해석해 15분을 "15:00"(15시간)으로 보내거나 반대로 분:초를 시:분으로 잘못 역산하는 문제가 있었습니다. 분(minute) 입력값이 60 이상이어도 검증되지 않아 잘못된 duration이 만들어지면 react-hook-form 검증이 조용히 실패해 생성 버튼이 무반응으로 보이는 버그로도 이어졌습니다.
  • 구현 방식: convertSecondsToApiDuration/convertApiDurationToSeconds(분:초 기준)로 실제 제출 값을 계산하고, 트리거에 보여줄 시:분 표기는 formatDurationAsClockLabel로 별도 파생해 실제 값과 분리했습니다. 초 입력값은 0~59로 클램프해 무효한 duration이 만들어지지 않도록 했습니다.
  • 경계 · 제약: AI 추천 duration이 퀵 선택 값과 동기화되어 서로 덮어쓰는 문제([REFACTOR] 투두 생성/수정 모달 시간·태그·아이콘 UI 개선 및 버그 수정 #188 체크리스트 마지막 항목)는 이번 PR에서 함께 해결했으며, AI 추천 박스는 퀵 선택의 영향을 받지 않고 AI 응답 또는 사용자의 직접 수정에만 반응하도록 분리했습니다.

시간 선택 UI 및 툴바 트리거 상태

  • 변경 요약: 시간 선택기의 직접 입력을 분/초 두 칸으로 분리하고, 툴바 트리거(날짜/시간/태그/반복)의 색상 상태를 열림/설정 여부에 따라 3단계로 정리했습니다. 반복 선택기에서 매일(DAILY)을 고르면 바로 닫히도록 했습니다.
  • 이유: 기존에는 시간 입력이 자유 텍스트 하나였어서 임의 길이 문자열을 넣을 수 있었고, 툴바 트리거 색상은 값 존재 여부만으로 판단해 생성 모달의 기본값(오늘 날짜, "00:00")에서도 항상 활성 색으로 보였습니다. 반복 선택기는 매일을 골라도 요일/날짜를 고르는 상세 단계로 넘어가 불필요한 클릭이 필요했습니다.
  • 구현 방식: Dropdown.Trigger가 열림 상태를 자식에게 넘기는 render-prop(trigger={(isOpen) => ...})을 지원하도록 확장했습니다. 툴바는 닫힘+미설정=gray-700, 닫힘+설정됨=gray-900, 열림=blue-300으로 아이콘·텍스트 색을 정리했습니다. RepeatSelector는 DAILY 선택 시에만 closeOnSelect를 true로 주고 상세 단계 전환을 건너뜁니다.
  • 경계 · 제약: Priority 아이콘은 우선순위별 고유 색상이 이미 의미를 가지므로 이번 색상 규칙에서 제외했습니다.

생성 모달 날짜 표시

  • 변경 요약: 생성 모달의 날짜 라벨을 상세 모달과 동일한 "yy.MM.dd" 형식으로 통일하고, 시간 트리거의 활성 상태를 formState.dirtyFields(사용자가 실제로 값을 바꿨는지)로 판단하도록 했습니다.
  • 이유: 생성 모달은 M.d 형식을 따로 쓰고 있어 상세 모달과 표시가 달랐습니다. 또한 AI 추천이 드롭다운을 열자마자 자동으로 duration을 채우기 때문에, 값 존재 여부만으로 활성 상태를 판단하면 사용자가 아무것도 하지 않아도 활성 색으로 보였습니다.
  • 구현 방식: 날짜는 이미 상세 모달에서 쓰던 formatShortDateLabel을 재사용했습니다. 시간은 formState.dirtyFields.durationisTimeActive로 넘겨, 실제 폼 값이 기본값에서 바뀐 경우에만 활성 색이 켜지도록 했습니다. 날짜는 생성 모달 특성상 기본값 자체가 항상 유효한 선택이라 값 존재 여부 기준을 그대로 유지했습니다.



To Reviewers

  • use-time-field.ts의 AI 추천/퀵 선택/수동 입력 사이 상태 관리가 이번에 여러 번 조정되었습니다. recommendedDuration(AI 박스 표시용)과 field.value(실제 제출 값)를 분리한 부분을 중점적으로 봐주세요.
  • Dropdown.Trigger의 render-prop 지원은 하위 호환(기존처럼 일반 ReactNode를 넘기는 방식)을 유지하도록 했습니다.
  • 반복(Repeat) 아이콘의 "설정됨" 상태(isRepeatActive)는 열림 상태와 별개로 유지했는데, 이 조합이 의도에 맞는지 확인 부탁드립니다.

Screenshot 📷



Test Checklist ✔

  • pnpm --filter timo-web check-types 통과
  • pnpm --filter @repo/timo-design-system check-types 통과
  • pnpm --filter timo-web lint 통과
  • pnpm --filter @repo/timo-design-system lint 통과
  • 브라우저에서 투두 생성/수정 모달 실제 동작 확인 — 미실행: 이번 세션에서 브라우저 자동화 도구 연결 실패로 수행하지 못함
  • pnpm build — 미실행: CI에서 확인 예정

kimminna added 6 commits July 14, 2026 20:22
- Enter 키다운 이벤트가 한글 조합(IME composing) 중에 발생하면 무시하도록 처리했습니다
- 기본 태그 4종(일상/업무/운동/과제)을 tagId로 매핑해 next-intl로 번역하도록 했습니다
- 홈 목록, 설정 태그 목록, 생성 모달 태그 드롭다운에 동일하게 적용했습니다
- IconGraphic 아이콘 크기를 18px에서 24px로 키워 버튼 영역에 꽉 차게 했습니다
- duration 문자열을 분:초(mm:ss)로 일관되게 해석·변환하도록 수정했습니다
- 트리거에 보여주는 시:분 표기를 분·초 전체 길이 기준으로 계산하도록 했습니다
- 생성/상세 모달의 60분·90분 옵션 라벨을 "1 h"/"1.5 h"에서 "60 min"/"90 min"으로 통일했습니다
- 시간 선택기의 직접 입력을 분/초 두 칸으로 분리하고 초 값을 0~59로 제한했습니다
- Dropdown.Trigger가 열림 상태를 자식에게 전달하도록 render-prop을 지원하게 했습니다
- 툴바 트리거(날짜/시간/태그/반복)의 닫힘·설정됨·열림 상태에 따라 아이콘과 텍스트 색상을 구분했습니다
- 반복 선택기에서 매일을 선택하면 상세 설정 단계로 넘어가지 않고 바로 닫히도록 했습니다
- 날짜 라벨을 상세 모달과 동일한 yy.MM.dd 형식으로 표시하도록 했습니다
- 시간 트리거의 활성 상태를 실제 값 존재 여부가 아닌 사용자 입력 여부(dirtyFields)로 판단하도록 했습니다
@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
timo Ready Ready Preview, Comment Jul 14, 2026 11:39am

Request Review

@github-actions github-actions Bot added ⏰ Timo-web Timo 웹 서비스 ⌚ Timo-Design-system Timo 디자인 시스템 ♻ Refactor 기능 개선 및 리팩토링 작업 ♦️ 민아 민아상 labels Jul 14, 2026
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

투두 모달의 시간 입력·변환, 기본 태그 번역, 드롭다운 트리거 상태 표시, 날짜 포맷, IME 입력 처리를 변경했습니다. 디자인 시스템의 선택기 트리거 타입과 시간 입력 UI도 확장했습니다.

Changes

투두 모달 UI 및 공통 디자인 시스템

Layer / File(s) Summary
드롭다운 트리거 상태와 툴바 렌더링
packages/timo-design-system/src/components/layout/Dropdown.tsx, packages/timo-design-system/src/components/{calendar,date,tag,time,repeat}/..., packages/timo-design-system/src/components/todo/todo-toolbar/TodoToolbar.tsx
트리거가 isOpen을 받는 함수형 children을 지원하며, 날짜·시간·태그·반복 아이콘이 열림 및 활성 상태에 따라 변경됩니다. 반복 선택 시 DAILY만 패널을 닫습니다.
시간 입력 및 duration 변환
packages/timo-design-system/src/components/time/time-selector/TimeSelector.tsx, apps/timo-web/hooks/todo-modal/use-time-field.ts, apps/timo-web/hooks/todo-modal/use-detail-todo-form.ts, apps/timo-web/app/.../today/_utils/todo-time.ts, apps/timo-web/utils/todo/todo-time.ts
시간 선택값을 분·초 및 API duration 형식으로 변환하고, 수동 입력을 분·초 두 필드로 분리해 초를 59 이하로 제한합니다.
기본 태그 번역 처리
apps/timo-web/utils/todo/tag-label.ts, apps/timo-web/hooks/todo-modal/use-tag-field.tsx, apps/timo-web/hooks/todo-modal/use-detail-todo-form.ts, apps/timo-web/app/.../home/_containers/HomeTodoContainer.tsx, apps/timo-web/app/.../settings/.../use-settings-profile.ts
tagId를 기본 태그 번역 키로 매핑하고, 홈 카드·설정·태그 선택·상세 폼에서 기본 태그 라벨을 Common 번역으로 표시합니다.
모달 날짜·입력 상태와 IME 처리
apps/timo-web/components/todo-modal/create/CreateTodoModalContent.tsx, apps/timo-web/hooks/todo-modal/use-detail-subtask-field.ts, apps/timo-web/hooks/todo-modal/use-subtask-field.ts
생성 모달 날짜를 공통 짧은 날짜 포맷으로 표시하고 시간 필드의 dirty 상태를 툴바에 전달합니다. IME 조합 중 Enter 입력은 서브태스크 추가를 실행하지 않습니다.
아이콘 기본 크기
packages/timo-design-system/src/components/icon/icon-graphic/IconGraphic.tsx
아이콘 기본 크기를 size-6으로 변경했습니다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant TimeSelector
  participant UseTimeField
  participant APIFormat
  User->>TimeSelector: 분·초 입력 또는 시간 선택
  TimeSelector->>UseTimeField: 변경된 시간 전달
  UseTimeField->>APIFormat: 초 단위 duration 변환
  APIFormat-->>UseTimeField: API duration 반환
  UseTimeField-->>TimeSelector: h:mm 표시값 갱신
Loading

Possibly related PRs

Suggested labels: 🐛 Bug

Suggested reviewers: yumin-kim2, ehye1, jjangminii

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 투두 생성/수정 모달의 시간·태그·아이콘 UI 개선과 버그 수정을 핵심적으로 잘 요약합니다.
Description check ✅ Passed 설명이 변경 범위와 배경을 구체적으로 담고 있어 PR 내용과 잘 맞습니다.
Linked Issues check ✅ Passed 이슈 #188의 IME, 태그 번역, 아이콘 크기, duration, 날짜, 툴바 상태 요구를 대부분 충족합니다.
Out of Scope Changes check ✅ Passed 시간·태그·툴바 UI와 이를 지원하는 디자인시스템 변경으로 보이며, 뚜렷한 무관 변경은 보이지 않습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/web/188-todo-modal-time-tag-icon

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Storybook Preview

항목 링크
Storybook 열기
Chromatic 빌드 확인

마지막 업데이트: 2026-07-14 11:40 UTC

@github-actions

Copy link
Copy Markdown

Timo Performance Report

Bundle Size — timo-web
라우트 크기 First Load JS
/[locale]/home 208.50 kB 🔴 414.36 kB
/[locale]/today 190.69 kB 🔴 396.55 kB
/[locale]/focus 160.00 kB 🔴 365.86 kB
/[locale]/settings 168.97 kB 🔴 374.83 kB
/[locale]/statistics 156.54 kB 🔴 362.40 kB
/[locale]/[...rest] 0 B 🟡 205.86 kB
/[locale]/login 215.67 kB 🔴 421.53 kB
/[locale]/oauth/callback 122.31 kB 🟡 328.17 kB
/[locale]/onboarding 235.56 kB 🔴 441.42 kB
/[locale] 121.69 kB 🟡 327.55 kB
/[locale]/policy 127.80 kB 🟡 333.66 kB

공유 번들: 205.86 kB
🟢 < 200kB  |  🟡 < 350kB  |  🔴 ≥ 350kB (First Load JS · gzip)

Lighthouse — timo-web
URL Perf A11y LCP CLS TBT
/en/home 🔴 67 🟢 95 🔴 15.5s 🟢 0.000 🟡 322ms
/en/today 🔴 58 🟢 95 🔴 15.3s 🟢 0.000 🔴 661ms
/en/focus 🔴 61 🟢 95 🔴 15.0s 🟢 0.000 🟡 517ms
/en/statistics 🔴 60 🟢 95 🔴 15.0s 🟢 0.000 🟡 552ms

Perf ≥ 70 / A11y ≥ 85 목표
LCP 🟢 < 2.5s 🟡 < 4s 🔴 ≥ 4s  |  CLS 🟢 < 0.1 🟡 < 0.25 🔴 ≥ 0.25  |  TBT 🟢 < 200ms 🟡 < 600ms 🔴 ≥ 600ms

Image Optimization — timo-web
파일 크기 포맷 상태
images/google-calendar.png 36.20 kB PNG ⚠️ 🟢
images/google-logo.png 26.79 kB PNG ⚠️ 🟢

총 2개 · 63.00 kB  |  🟢 < 200KB  |  🟡 < 500KB  |  🔴 ≥ 500KB
⚠️ 2개 파일 WebP/AVIF 변환 권장

측정 커밋: e852ed8

@jjangminii jjangminii left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checkout에서 확인해봤습니다~ 아까 말했던 하위테스크 생성 오류상황 해결된 것은 확인했어요.
다만 이미지처럼 03분이 00분으로 나타나고있어서 이부분 확인해주세요~

Image

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_utils/todo-time.ts (1)

4-13: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

중복된 유틸리티 함수 제거 및 공용 패키지 사용

시간 변환 유틸리티를 공용 폴더로 잘 분리해 주셨네요! 👍
다만 한 가지 아쉬운 점은 이 파일이 도메인(today) 폴더에 여전히 남아 있어 코드 중복이 발생했다는 점입니다.

"공유 로직은 반드시 lib/ 또는 packages/로 추출"해야 한다는 아키텍처 규칙에 따라, 도메인에 종속된 이 파일을 완전히 삭제하시고 필요한 곳에서는 이미 만들어두신 apps/timo-web/utils/todo/todo-time.ts의 공용 유틸리티를 import 하여 사용하도록 정리해 주시는 것을 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/timo-web/app/`[locale]/(main)/(with-time-sidebar)/today/_utils/todo-time.ts
around lines 4 - 13, Remove the domain-local convertApiDurationToSeconds utility
from the today time helper, and update its consumers to import and use the
existing shared utility from apps/timo-web/utils/todo/todo-time.ts instead.
Ensure no duplicate implementation or references to the deleted local helper
remain.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/timo-web/hooks/todo-modal/use-detail-todo-form.ts`:
- Line 69: Update the todo detail form’s `defaultValues.time` initialization to
use `convertSecondsToApiDuration(todo.durationSeconds)` instead of
`convertDurationToTimeText`, keeping the initial value in the API’s `mm:ss`
format and consistent with the save payload.

In
`@packages/timo-design-system/src/components/time/time-selector/TimeSelector.tsx`:
- Around line 28-38: Update the TimeSelector input flow around
sanitizeTimeSegment, sanitizeSecondsSegment, and onTimeChange to maintain local,
uncommitted minute/second text while the user edits. Do not propagate empty or
one-digit segments to duration; on blur or explicit confirmation, normalize both
segments to two digits, preserve seconds clamping, and then call onTimeChange
with the complete mm:ss value.

In
`@packages/timo-design-system/src/components/todo/todo-toolbar/TodoToolbar.tsx`:
- Around line 164-166: Update the TodoToolbar trigger’s TagIcon variant logic so
a selected tag is not rendered with the disabled variant when the menu is
closed: keep the open state blue, use the default variant when selectedTag is
configured, and reserve "disable" for the unconfigured state.

---

Outside diff comments:
In
`@apps/timo-web/app/`[locale]/(main)/(with-time-sidebar)/today/_utils/todo-time.ts:
- Around line 4-13: Remove the domain-local convertApiDurationToSeconds utility
from the today time helper, and update its consumers to import and use the
existing shared utility from apps/timo-web/utils/todo/todo-time.ts instead.
Ensure no duplicate implementation or references to the deleted local helper
remain.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 902ec25c-7e9e-4b86-8db4-3b53a2229c16

📥 Commits

Reviewing files that changed from the base of the PR and between 9616cf9 and 3750d09.

📒 Files selected for processing (18)
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/home/_containers/HomeTodoContainer.tsx
  • apps/timo-web/app/[locale]/(main)/(with-time-sidebar)/today/_utils/todo-time.ts
  • apps/timo-web/app/[locale]/(main)/settings/_hooks/account/use-settings-profile.ts
  • apps/timo-web/components/todo-modal/create/CreateTodoModalContent.tsx
  • apps/timo-web/hooks/todo-modal/use-detail-subtask-field.ts
  • apps/timo-web/hooks/todo-modal/use-detail-todo-form.ts
  • apps/timo-web/hooks/todo-modal/use-subtask-field.ts
  • apps/timo-web/hooks/todo-modal/use-tag-field.tsx
  • apps/timo-web/hooks/todo-modal/use-time-field.ts
  • apps/timo-web/utils/todo/tag-label.ts
  • apps/timo-web/utils/todo/todo-time.ts
  • packages/timo-design-system/src/components/calendar/date-selector/DateSelector.tsx
  • packages/timo-design-system/src/components/icon/icon-graphic/IconGraphic.tsx
  • packages/timo-design-system/src/components/layout/dropdown/Dropdown.tsx
  • packages/timo-design-system/src/components/repeat/repeat-selector/RepeatSelector.tsx
  • packages/timo-design-system/src/components/tag/tag-selector/TagSelector.tsx
  • packages/timo-design-system/src/components/time/time-selector/TimeSelector.tsx
  • packages/timo-design-system/src/components/todo/todo-toolbar/TodoToolbar.tsx

Comment thread apps/timo-web/hooks/todo-modal/use-detail-todo-form.ts
@kimminna
kimminna merged commit e2b377b into develop Jul 14, 2026
24 checks passed
@kimminna
kimminna deleted the refactor/web/188-todo-modal-time-tag-icon branch July 14, 2026 12:17
@kimminna kimminna mentioned this pull request Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⌚ Timo-Design-system Timo 디자인 시스템 ⏰ Timo-web Timo 웹 서비스 ♦️ 민아 민아상 ♻ Refactor 기능 개선 및 리팩토링 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] 투두 생성/수정 모달 시간·태그·아이콘 UI 개선 및 버그 수정

2 participants