Skip to content

[Feature/#265] 타임라인 페이지 레이아웃 조립 및 디자인 수정 및 UI 구현#266

Merged
jjjsun merged 9 commits into
developfrom
feature/#265
Jun 27, 2026
Merged

[Feature/#265] 타임라인 페이지 레이아웃 조립 및 디자인 수정 및 UI 구현#266
jjjsun merged 9 commits into
developfrom
feature/#265

Conversation

@jjjsun

@jjjsun jjjsun commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

🚨 관련 이슈

Closed #265

✨ 변경사항

  • 🐞 BugFix Something isn't working
  • 💻 CrossBrowsing Browser compatibility
  • 🌏 Deploy Deploy
  • 🎨 Design Markup & styling
  • 📃 Docs Documentation writing and editing (README.md, etc.)
  • ✨ Feature Feature
  • 🔨 Refactor Code refactoring
  • ⚙️ Setting Development environment setup
  • ✅ Test Test related (storybook, jest, etc.)

✏️ 작업 내용

페이지 조립 (Timeline)

  • ComingSoonPlaceholder 제거 후 타임라인 페이지 본문 구현완료했습니다.
  • mock데이터 기준으로 그리드/바/모달/패널 연동
  • 로컬 상태일때 생성 모달/ 성과 요약 패널/ 기간 보기 단위 제어
  • 뷰포트 높이 기준으로 캔버스 레이아웃 및 가로세로 스크롤 적용

헤더 영역

  • On Track / Above Avg / Underperform로 성과 상태 기준 알리고, ? hover 시에는 평균 기준 설명 툴팁 첨부하였습니다.
  • 타임라인 생성 버튼은 성과 상태 범례와 justify-betwwen` 배치
  • 보기 단위는 기존이 드랍다운으로 구현했던 이전 PR 작업보다는 세그먼트 컨트롤로 보여지는게 훨씬 깔끔하고 직관적인 인상을 주는것같아 디자인 수정했습니다.
  • 기간 네비게이션은 기존 좌측 정렬에서 중앙정렬로 수정함으로써 사용자가 바로 날짜를 확인할 수 있도록 변경하였습니다. 추가로 [오늘] 버튼을 추가하여 이전 기간갔다가 바로 오늘 날짜로 돌아올수 있도록 수정작업 진행하였습니다.
  • Sort/Filter - 타임라인 바 정렬과 필터링을 할수있도록 아이콘을 추가하였고 추후에 API연동작업에서 기능구현 예정입니다.

캔버스 /그리드

  • TimelineAxis sticky 상단 고정
  • TimelineGrid 세로선 연하게, 캔버스 높이에 맞춰 세로선·오늘 칸 배경 전체 확장
  • 날짜 칸 너비 확장하였습니다.

타임라인 바

  • 클릭시에는 패널이 오픈되도록 하였고,
  • 선택할 시에는 상태별 ring 색상이 되도록 디자인 수정했습니다. (On Track: 파랑/Above Avg: 초록/Underperform: 빨강)
  • 플랫폼 로고도 같이 타임라인 바 정보에 표시되도록 수정하였습니다. 다중 표시가 가능하도록 하였고, 연결된 플랫폼만 원형 로고로 겹치도록 표시되게 하였습니다.
  • Kebab Icon 메뉴를 hover하거나 선택했을때 노출되도록 수정하였고, 해당 메뉴에는 수정/삭제 넣었습니다. (현재는 toast로)
  • DropdownMenu placement="auto" — 하단 공간이 좁아 잘림이 발생할 때에는 위로 펼쳐지도록 수정하였고, 메뉴 너비 축소했습니다.

빈 상태

만약 타임라인 바가 없다면, bars.length === 0일때 안내 문구 + 생성 CTA

  • 테스트용 TIMELINE_GRID_EMPTY_MOCK 추가

💻 작업 화면

image image image image

😅 미완성 작업

N/A

📢 논의 사항 및 참고 사항

  • provider 표시: 타임라인 생성 모달에는 플랫폼 선택이 없습니다. 바의 providers는 연결된 캠페인/광고 플랫폼 목록으로 API에서 내려올 예정입니다. (mock: 리타겟팅 캠페인 = Google·Meta·Naver 3개)
  • 빈 상태 확인: TIMELINE_GRID_EMPTY_MOCK으로 import 교체 후 확인 가능
  • 그리드 가로 너비는 columns.length × COL_WIDTH — API 연동 시 기간·viewUnit에 따라 칸 수 증가 → 가로 스크롤

💬 리뷰어 가이드 (P-Rules)
P1: 필수 반영 (Critical) - 버그 가능성, 컨벤션 위반. 해결 전 머지 불가.
P2: 적극 권장 (Recommended) - 더 나은 대안 제시. 가급적 반영 권장.
P3: 제안 (Suggestion) - 아이디어 공유. 반영 여부는 드라이버 자율.
P4: 단순 확인/칭찬 (Nit) - 사소한 오타, 칭찬 등 피드백.

Summary by CodeRabbit

  • New Features

    • 타임라인 화면이 실제 목록/축/그리드/상세 패널로 구성되어 표시됩니다.
    • 타임라인이 비어 있을 때 생성 안내 화면과 생성 모달이 제공됩니다.
    • 기간 단위 전환, 오늘로 이동, 상태 범례 도움말이 추가되었습니다.
    • 드롭다운 메뉴가 상/하단 자동 배치와 접근성 라벨을 지원합니다.
  • Bug Fixes

    • 선택된 항목과 메뉴 표시 상태가 더 안정적으로 동기화됩니다.
    • 여러 제공자 로고와 상태 스타일이 더 정확하게 표시됩니다.

@jjjsun jjjsun requested review from Seojegyeong and YermIm June 25, 2026 09:44
@jjjsun jjjsun self-assigned this Jun 25, 2026
@jjjsun jjjsun added 🎨 Html&css 마크업 & 스타일링 ✨ Feature 기능 개발 labels Jun 25, 2026
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2e5ed020-8494-4110-942c-1f2672ab23b8

📥 Commits

Reviewing files that changed from the base of the PR and between 8b8c11a and ff9742e.

📒 Files selected for processing (3)
  • src/components/common/dropdownmenu/DropdownMenu.tsx
  • src/components/timeline/TimelineBar.tsx
  • src/constants/timeline/layout.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/constants/timeline/layout.ts
  • src/components/timeline/TimelineBar.tsx
  • src/components/common/dropdownmenu/DropdownMenu.tsx

📝 Walkthrough

Walkthrough

타임라인 페이지가 실제 데이터와 상호작용하도록 조립되었습니다. 드롭다운 메뉴, 상태 범례, 기간 선택, 축/그리드/바 렌더링, 생성 모달, 선택 패널이 연결되며, mock 데이터와 바 계약은 다중 provider 구조로 바뀌었습니다.

Changes

타임라인 화면 조립

Layer / File(s) Summary
DropdownMenu 배치
src/components/common/dropdownmenu/DropdownMenu.tsx
auto 배치 계산, placement, "aria-label", onOpenChange가 추가되고, 메뉴 패널이 상/하 위치에 따라 렌더링됩니다.
데이터 계약과 mock
src/types/timeline/ui.ts, src/types/timeline/timeline.mock.ts
ITimelineCampaignBar.providers 계약이 도입되고, 주간/일간/월간 grid mock과 bar별 summary panel 데이터 생성 헬퍼가 갱신됩니다.
툴바 컨트롤
src/constants/timeline/statusStyle.ts, src/components/timeline/TimelineStatusLegend.tsx, src/components/timeline/TimelinePeriodSelector.tsx
상태 범례 스타일과 설명이 추가되고, 보기 단위 세그먼트와 기간 이동, 오늘 버튼이 타임라인 툴바에 배치됩니다.
축, 그리드, 바 렌더링
src/constants/timeline/layout.ts, src/components/timeline/TimelineAxis.tsx, src/components/timeline/TimelineGrid.tsx, src/components/timeline/TimelineBar.tsx
축/그리드/바 렌더링이 z-index, 컬럼 폭, 선택 상태, 제공자 로고, 메뉴 동작에 맞게 조정됩니다.
생성 모달
src/components/timeline/TimelineCreateModal.tsx
타임라인 생성 모달이 날짜 입력, 지표 선택, 비교 기간 선택, 제출 상태를 처리합니다.
페이지 조립
src/pages/dashboard/timeline/Timeline.tsx, src/components/timeline/TimelineEmptyState.tsx
타임라인 페이지가 빈 상태, 스크롤 영역, 생성 모달, 선택 패널을 연결합니다.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Timeline
  participant TimelinePeriodSelector
  participant TimelineBar
  participant TimelineCreateModal
  participant TimelinePerformancePanel

  User->>Timeline: /timeline 열기
  Timeline->>TimelinePeriodSelector: viewUnit, periodIndex 렌더
  User->>TimelinePeriodSelector: 단위/기간 변경
  TimelinePeriodSelector->>Timeline: onViewUnitChange / onGoToToday
  Timeline->>TimelineBar: bars, 선택 상태 렌더
  User->>TimelineBar: 바 클릭
  TimelineBar->>Timeline: onBarClick(bar)
  Timeline->>TimelinePerformancePanel: panelData 표시
  User->>Timeline: 생성 버튼 클릭
  Timeline->>TimelineCreateModal: isOpen=true
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • WhereYouAd/WhereYouAd-Frontend#251: 타임라인 바 타입과 mock 기반 구조를 먼저 만든 PR로, 이번 providers 계약 확장과 직접 이어집니다.
  • WhereYouAd/WhereYouAd-Frontend#253: TimelineAxis, TimelineGrid, TimelineBar의 렌더링 구조를 함께 다룬 PR이라 이번 축/그리드/바 조정과 직접 맞닿아 있습니다.
  • WhereYouAd/WhereYouAd-Frontend#256: TimelinePeriodSelector의 기간 선택 흐름을 초기 도입한 PR로, 이번 세그먼트/기간 이동 개편과 연결됩니다.

Suggested reviewers

  • Seojegyeong
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning 대부분의 요구는 반영됐지만, #265의 MainLayout 스크롤/높이 조정 항목은 변경 내역에서 확인되지 않습니다. MainLayout의 높이와 스크롤 동작을 조정한 변경을 추가하고, /timeline과 같은 톤으로 맞춰주세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed 제목이 타임라인 페이지 레이아웃 조립과 UI 구현이라는 핵심 변경을 잘 요약합니다.
Description check ✅ Passed 요구 템플릿의 관련 이슈, 변경사항, 작업 내용, 미완성 작업, 논의 사항 항목이 모두 채워져 있습니다.
Out of Scope Changes check ✅ Passed 변경 사항은 모두 타임라인 페이지와 연관되어 있어 별도 범위 이탈은 보이지 않습니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/#265

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

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown

📚 Storybook 배포 완료

항목 링크
📖 Storybook https://69a147b60a56365d9e2185ef-favbhasrri.chromatic.com/
🔍 Chromatic https://www.chromatic.com/build?appId=69a147b60a56365d9e2185ef&number=372

@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: 6

🧹 Nitpick comments (4)
src/components/timeline/TimelinePerformancePanel.stories.tsx (1)

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

스토리 import도 @/ alias로 통일하는 편이 좋습니다.

지금처럼 상대 경로가 섞이면 파일 이동 시 스토리만 따로 깨지기 쉬워집니다.

As per coding guidelines, "Use @/ alias for all imports."

🤖 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 `@src/components/timeline/TimelinePerformancePanel.stories.tsx` at line 10, The
story file is using a relative import instead of the project-wide `@/` alias,
which breaks the import convention. Update the `TimelinePerformancePanel` import
in `TimelinePerformancePanel.stories.tsx` to use the same alias style as the
rest of the codebase, matching the existing component name and preserving the
current import target.

Source: Coding guidelines

src/components/timeline/TimelineCreateModal.stories.tsx (1)

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

스토리에서도 import는 @/ alias로 맞춰주세요.

프로덕션 코드와 스토리북 코드가 다른 import 규칙을 쓰기 시작하면, 이후 이동/검색/자동 정리에서 일관성이 깨집니다.

As per coding guidelines, "Use @/ alias for all imports."

🤖 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 `@src/components/timeline/TimelineCreateModal.stories.tsx` at line 5, The
Storybook story import is using a relative path instead of the required `@/`
alias. Update the `TimelineCreateModal.stories.tsx` import to match the
project-wide alias convention, following the same pattern used in other
components and stories so `TimelineCreateModal` is referenced through `@/`
rather than a local path.

Source: Coding guidelines

src/components/timeline/TimelineCreateModal.tsx (1)

19-25: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

상대 경로 import를 @/ alias로 통일해주세요.

이 파일만 ../common/... 상대 경로를 쓰고 있어서, 이동/리팩터링 시 경로가 가장 먼저 깨지는 지점이 됩니다.

예시 수정
-import Button from "../common/button/Button";
-import {
-  DropdownMenu,
-  type TMenuItem,
-} from "../common/dropdownmenu/DropdownMenu";
-import Input from "../common/input/Input";
-import Modal from "../common/modal/Modal";
+import Button from "`@/components/common/button/Button`";
+import {
+  DropdownMenu,
+  type TMenuItem,
+} from "`@/components/common/dropdownmenu/DropdownMenu`";
+import Input from "`@/components/common/input/Input`";
+import Modal from "`@/components/common/modal/Modal`";

As per coding guidelines, "Use @/ alias for all imports."

🤖 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 `@src/components/timeline/TimelineCreateModal.tsx` around lines 19 - 25, The
imports in TimelineCreateModal should be updated to use the "`@/`” alias instead
of "../common/..." relative paths. Replace the current Button, DropdownMenu,
Input, and Modal imports with equivalent "`@/`..." imports so this file follows
the project-wide import convention and is less fragile during moves or
refactors.

Source: Coding guidelines

src/components/timeline/TimelineBar.tsx (1)

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

상대 경로 대신 @/ 별칭으로 맞춰 주세요.

이 파일만 상대 경로를 쓰면 이동/분리할 때 경로가 먼저 깨지기 쉽습니다.

🔧 제안
-import { DropdownMenu } from "../common/dropdownmenu/DropdownMenu";
+import { DropdownMenu } from "`@/components/common/dropdownmenu/DropdownMenu`";

As per coding guidelines, **/*.{ts,tsx}: Use @/ alias for all imports.

🤖 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 `@src/components/timeline/TimelineBar.tsx` at line 14, The import in
TimelineBar should use the project’s `@/` alias instead of a relative path. Update
the DropdownMenu import in TimelineBar.tsx to reference the same module through
`@/` so it matches the coding guideline for all ts/tsx imports and avoids path
fragility when files move.

Source: Coding guidelines

🤖 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 `@src/components/timeline/TimelineAxis.tsx`:
- Line 23: The timeline axis layer is too low and can be overlapped by the first
bar during scroll. Update the axis styling in TimelineAxis and, if needed, the
Timeline.tsx caller so the sticky axis sits above TimelineBar’s hover/selected
z-index (for example by raising the axis z-index consistently with the existing
sticky top-0 setup).

In `@src/components/timeline/TimelineBar.tsx`:
- Around line 53-66: TimelineBar의 바 선택 동작이 마우스 클릭에만 연결되어 있어 키보드 접근성이 빠져 있습니다.
`TimelineBar` 컴포넌트의 루트 div에 `role="button"`과 `tabIndex`를 추가하고, `onKeyDown`에서
Enter/Space로도 `onBarClick`이 실행되게 처리하세요. 또한 내부 케밥 메뉴에서 발생한 키 이벤트가 바 선택을 트리거하지 않도록
이벤트 전파를 막는 방식을 함께 적용하세요.

In `@src/components/timeline/TimelineCreateModal.tsx`:
- Around line 83-95: The comparison period menu in TimelineCreateModal still
changes while isSubmitting is true because comparisonMenuItems keeps wiring
onClick to setValue; update the useMemo that builds
TIMELINE_COMPARISON_PERIOD_OPTIONS so the menu items are disabled or no-op
during submission, matching the other form controls. Use the existing symbols
comparisonMenuItems, isSubmitting, setValue, and comparisonPeriodType to locate
and guard the click handler.

In `@src/pages/dashboard/timeline/Timeline.tsx`:
- Around line 47-78: The view unit switch in Timeline only updates the toolbar
label and does not change the rendered grid. Update Timeline to derive the
rendered `columns` and `bars` from `viewUnit` instead of always using
`TIMELINE_GRID_MOCK`, and make sure `periodLabels`/`periodLabel` stay in sync
with the same source. Use the existing `handleViewUnitChange` and `viewUnit`
state to drive the actual axis, grid, and bar data so DAY/MONTH selection
changes the canvas layout, not just the label.
- Around line 92-100: The panel data in Timeline is mostly disconnected from the
selected bar because handleBarClick only sets selectedBarId while the
performance panel still uses TIMELINE_SUMMARY_PANEL_MOCK for performanceStatus,
metrics, periodLabel, and platformShare. Update the Timeline component so the
selected bar drives the full panel payload by looking up or deriving the panel
mock from the clicked ITimelineCampaignBar, and make sure the panel’s status and
other displayed fields stay in sync with the selected bar rather than remaining
fixed to the shared mock.

---

Nitpick comments:
In `@src/components/timeline/TimelineBar.tsx`:
- Line 14: The import in TimelineBar should use the project’s `@/` alias instead
of a relative path. Update the DropdownMenu import in TimelineBar.tsx to
reference the same module through `@/` so it matches the coding guideline for all
ts/tsx imports and avoids path fragility when files move.

In `@src/components/timeline/TimelineCreateModal.stories.tsx`:
- Line 5: The Storybook story import is using a relative path instead of the
required `@/` alias. Update the `TimelineCreateModal.stories.tsx` import to
match the project-wide alias convention, following the same pattern used in
other components and stories so `TimelineCreateModal` is referenced through `@/`
rather than a local path.

In `@src/components/timeline/TimelineCreateModal.tsx`:
- Around line 19-25: The imports in TimelineCreateModal should be updated to use
the "`@/`” alias instead of "../common/..." relative paths. Replace the current
Button, DropdownMenu, Input, and Modal imports with equivalent "`@/`..." imports
so this file follows the project-wide import convention and is less fragile
during moves or refactors.

In `@src/components/timeline/TimelinePerformancePanel.stories.tsx`:
- Line 10: The story file is using a relative import instead of the project-wide
`@/` alias, which breaks the import convention. Update the
`TimelinePerformancePanel` import in `TimelinePerformancePanel.stories.tsx` to
use the same alias style as the rest of the codebase, matching the existing
component name and preserving the current import target.
🪄 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: CHILL

Plan: Pro

Run ID: 79da50c6-96ad-48a8-9d21-603934a6ce06

📥 Commits

Reviewing files that changed from the base of the PR and between d93b159 and 7df803f.

⛔ Files ignored due to path filters (1)
  • src/assets/icon/common/plus.svg is excluded by !**/*.svg and included by src/**
📒 Files selected for processing (19)
  • src/components/common/dropdownmenu/DropdownMenu.tsx
  • src/components/timeline/TimelineAxis.tsx
  • src/components/timeline/TimelineBar.tsx
  • src/components/timeline/TimelineCreateModal.stories.tsx
  • src/components/timeline/TimelineCreateModal.tsx
  • src/components/timeline/TimelineEmptyState.tsx
  • src/components/timeline/TimelineGrid.tsx
  • src/components/timeline/TimelinePerformancePanel.stories.tsx
  • src/components/timeline/TimelinePerformancePanel.tsx
  • src/components/timeline/TimelinePeriodSelector.tsx
  • src/components/timeline/TimelineStatusLegend.tsx
  • src/constants/timeline/formOptions.ts
  • src/constants/timeline/layout.ts
  • src/constants/timeline/statusStyle.ts
  • src/pages/dashboard/timeline/Timeline.tsx
  • src/types/timeline/summary.ts
  • src/types/timeline/timeline.mock.ts
  • src/types/timeline/ui.ts
  • src/utils/timeline/timeline.ts

Comment thread src/components/timeline/TimelineAxis.tsx Outdated
Comment thread src/components/timeline/TimelineBar.tsx Outdated
Comment thread src/components/timeline/TimelineCreateModal.tsx
Comment thread src/pages/dashboard/timeline/Timeline.tsx
Comment thread src/pages/dashboard/timeline/Timeline.tsx
Comment thread src/utils/timeline/timeline.ts
@Seojegyeong

Copy link
Copy Markdown
Collaborator

P4: 충돌났습니다...

@jjjsun

jjjsun commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

P4: 충돌났습니다...

넵 해결중입니다!

@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.

🧹 Nitpick comments (1)
src/components/timeline/TimelineAxis.tsx (1)

24-27: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

인라인 z-index 스타일 대신 Tailwind 유틸리티로 통일해주세요.

Line 27에서 zIndex를 인라인으로 주입하면 스타일 규칙 일관성이 깨집니다. z-30 클래스로 옮기고 인라인 스타일에는 높이만 남기는 쪽이 가이드와 맞습니다.

변경 제안
-      className={twMerge(
-        "relative flex shrink-0 border-b border-surface-400/80 bg-surface-100",
-        className,
-      )}
-      style={{ height: TIMELINE_AXIS_HEIGHT, zIndex: TIMELINE_AXIS_Z_INDEX }}
+      className={twMerge(
+        "relative z-30 flex shrink-0 border-b border-surface-400/80 bg-surface-100",
+        className,
+      )}
+      style={{ height: TIMELINE_AXIS_HEIGHT }}

As per coding guidelines **/*.{ts,tsx}: Use only Tailwind utility classes (bg-*, text-*, border-*) for styling.

🤖 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 `@src/components/timeline/TimelineAxis.tsx` around lines 24 - 27, The
TimelineAxis component is setting zIndex inline in the style prop, which
conflicts with the Tailwind-only styling guideline. Update TimelineAxis to move
the stacking order to a Tailwind utility class such as z-30 on the root element,
and keep the inline style limited to TIMELINE_AXIS_HEIGHT. Refer to the
TimelineAxis component and its style/className composition when making the
change.

Source: Coding guidelines

🤖 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.

Nitpick comments:
In `@src/components/timeline/TimelineAxis.tsx`:
- Around line 24-27: The TimelineAxis component is setting zIndex inline in the
style prop, which conflicts with the Tailwind-only styling guideline. Update
TimelineAxis to move the stacking order to a Tailwind utility class such as z-30
on the root element, and keep the inline style limited to TIMELINE_AXIS_HEIGHT.
Refer to the TimelineAxis component and its style/className composition when
making the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2a990064-17c5-4604-957e-866b4362d75e

📥 Commits

Reviewing files that changed from the base of the PR and between 6602934 and 8b8c11a.

📒 Files selected for processing (6)
  • src/components/timeline/TimelineAxis.tsx
  • src/components/timeline/TimelineBar.tsx
  • src/components/timeline/TimelineCreateModal.tsx
  • src/constants/timeline/layout.ts
  • src/pages/dashboard/timeline/Timeline.tsx
  • src/types/timeline/timeline.mock.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/pages/dashboard/timeline/Timeline.tsx
  • src/components/timeline/TimelineBar.tsx
  • src/components/timeline/TimelineCreateModal.tsx

@jjjsun jjjsun merged commit a83179a into develop Jun 27, 2026
3 checks passed
@jjjsun jjjsun deleted the feature/#265 branch June 27, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발 🎨 Html&css 마크업 & 스타일링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ [Feature] 타임라인 페이지 레이아웃 조립

3 participants