Skip to content

[Deploy] develop → main 배포 반영 - #415

Merged
jjjsun merged 63 commits into
mainfrom
develop
Aug 8, 2026
Merged

[Deploy] develop → main 배포 반영#415
jjjsun merged 63 commits into
mainfrom
develop

Conversation

@jjjsun

@jjjsun jjjsun commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

🚨 관련 이슈

N/A

✨ 변경사항

  • 🐞 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.)

✏️ 작업 내용

N/A

😅 미완성 작업

N/A

📢 논의 사항 및 참고 사항

N/A

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

Summary by CodeRabbit

  • 새 기능

    • 타임라인 목록에 상태 필터와 정렬 옵션이 추가되었습니다.
    • 플랫폼별 성과 화면에 전체 보기 및 플랫폼 선택 기능이 제공됩니다.
    • 광고 플랫폼 동기화 완료 후 후속 처리가 개선되었습니다.
    • 모바일 사이드바 드로어와 닫기 동작이 추가되었습니다.
  • 개선

    • 광고, 대시보드, 워크스페이스 화면의 모바일 반응형 레이아웃을 개선했습니다.
    • 모바일 환경에서 차트, 카드, 모달, 로딩 화면의 가독성과 배치를 개선했습니다.
    • 타임라인 AI 요약 및 성과 지표 표시가 개선되었습니다.

jjjsun and others added 30 commits August 6, 2026 15:07
[Design/#402] 워크스페이스 목록 카드 시각 계층/사용자 눈에 띄도록 개선
[Feature/#404] 플랫폼 연동 직후 초기 동기화
YermIm and others added 23 commits August 7, 2026 03:06
[Feature/#401] 타임라인 바 필터/정렬 연동
[Bugfix/#410] 타임라인 월(MONTH) 보기 초기 스크롤을 월 초로 수정
[Feature/#405] 모바일·태블릿 반응형 처리
[Feature/#413] 타임라인 생성 모달/그리드/성과 패널 UX 개선
@jjjsun jjjsun self-assigned this Aug 8, 2026
@jjjsun jjjsun added the 🌏 Deploy 배포 관련 label Aug 8, 2026
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

타임라인 필터·정렬, 플랫폼 동기화, 모바일 사이드바, 광고·대시보드·워크스페이스의 반응형 UI를 업데이트했습니다. 공통 컴포넌트와 상태 관리 계약도 확장했습니다.

Changes

광고·대시보드·워크스페이스 반응형 UI

Layer / File(s) Summary
광고 화면 모바일 레이아웃
src/components/ads/*, src/pages/ads/*
광고 목록과 캠페인 상세 화면에 모바일 열 너비, 패딩, 버튼 배치를 적용했습니다.
대시보드와 워크스페이스 반응형 UI
src/components/dashboard/*, src/components/workspace/*, src/pages/dashboard/platform/PlatformDashboard.tsx, src/pages/workspace/Workspace.tsx
플랫폼 전환 UI, KPI 카드, 성과 차트, 워크스페이스 카드와 로딩 화면을 모바일 레이아웃으로 변경했습니다.
공통 스타일과 연동 카드
src/components/common/*, src/components/integration/*, src/styles/utilities.css, src/index.css
반응형 글꼴, 모달 여백, 드롭다운 흐름 배치와 연동 카드의 모바일 스타일을 추가했습니다.

타임라인 필터와 성과 패널

Layer / File(s) Summary
타임라인 API와 쿼리 계약
src/types/timeline/api.ts, src/api/timeline/timeline.ts, src/hooks/timeline/useTimelineList.ts, src/lib/queryKeys.ts, src/store/useTimelineStore.ts
상태·정렬 파라미터와 쿼리 키를 추가했습니다. 목록 API는 값이 있는 파라미터만 전달합니다.
타임라인 필터·정렬 컨트롤
src/constants/timeline/filterSort.ts, src/components/timeline/TimelineFilterSortMenus.tsx, src/pages/dashboard/timeline/Timeline.tsx
상태 필터와 정렬 메뉴를 추가하고 전역 상태를 목록 요청에 연결했습니다.
성과 패널과 기간 상태
src/utils/timeline/period.ts, src/components/timeline/TimelinePerformancePanel.tsx, src/constants/timeline/layout.ts
패널의 차트 기간 초기화, AI 요약 상태별 카드, KPI 그리드와 행 높이를 변경했습니다.

플랫폼 동기화 흐름

Layer / File(s) Summary
플랫폼 동기화 mutation 훅
src/hooks/integration/usePlatformSyncMutations.ts
Google, Meta, Naver 동기화와 공통 성공·실패 처리를 하나의 훅으로 통합했습니다.
OAuth와 연결 화면 통합
src/hooks/integration/useIntegrationOAuthReturn.ts, src/components/integration/NaverConnectModal.tsx, src/pages/integration/PlatformIntegrationsPage.tsx
OAuth 성공과 Naver 연결 성공 후 동기화를 시작하도록 연결했습니다. 동기화 진행 상태와 모달 상태도 새 훅을 사용합니다.

모바일 사이드바 드로어

Layer / File(s) Summary
사이드바 상태 계약
src/store/useSidebarStore.ts, src/hooks/sidebar/useSidebar.ts
모바일 드로어 열림 상태와 닫기 액션을 추가했습니다.
사이드바 이동과 드로어 종료
src/components/sidebar/Sidebar.tsx, src/components/sidebar/SidebarItem.tsx, src/components/sidebar/SubMenu.tsx
메뉴 이동 시 드로어를 닫고, 모바일 상태에서 하위 메뉴 동작을 조정했습니다.
모바일 사이드바 셸
src/layout/main/MainLayout.tsx
메뉴 버튼, 오버레이, 슬라이드 전환, Escape 종료와 문서 스크롤 잠금을 추가했습니다.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested reviewers: seojegyeong, yermim

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning 템플릿 구조와 배포 유형은 작성했지만, 실제 변경사항을 설명해야 하는 작업 내용이 N/A로 남아 있어 설명이 불완전합니다. 작업 내용에 타임라인 필터·정렬, 반응형 레이아웃, 사이드바 UX 등 주요 변경사항과 관련 검증 내용을 작성해 주세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 8.70% 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 제목이 develop 브랜치 변경사항을 main에 배포 반영하는 PR이라는 주요 목적을 명확하고 간결하게 설명합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

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.

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

🤖 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/ads/CampaignTable.tsx`:
- Around line 6-9: Update the CampaignRow import in CampaignTable.tsx to use the
configured `@/` alias, importing from `@/components/ads/CampaignRow` while
preserving the existing named imports.

In `@src/components/dashboard/charts/performanceEfficiencyChart.config.ts`:
- Line 41: Update the hideOverlappingLabels setting in the performance
efficiency chart configuration so it evaluates to true when compact is true,
while preserving the desktop default behavior.

In `@src/components/dashboard/platform/SinglePlatformView.tsx`:
- Line 113: Update the error and empty-state elements in SinglePlatformView to
use col-span-full instead of col-span-4, so they span the full grid width when
the mobile fallback uses a single column.

In `@src/components/dashboard/platform/skeleton/PlatformSkeleton.tsx`:
- Line 16: Update the name Skeleton element in PlatformSkeleton to use
mobile:invisible instead of mobile:hidden, preserving its flex-1 layout space on
mobile while keeping it visually hidden.

In `@src/components/timeline/TimelinePerformancePanel.tsx`:
- Around line 353-366: Update the KPI grid in the TimelinePerformancePanel
section to use two columns at the tablet breakpoint by changing the tablet grid
configuration from four columns to two. Preserve the default four-column layout
and existing spacing classes.

In `@src/hooks/integration/usePlatformSyncMutations.ts`:
- Around line 42-47: Update useCoreMutation in customQuery so its onSuccess
handler awaits or returns the Promise from userOnSuccess before completing the
mutation. Ensure asynchronous callbacks such as invalidateConnections in
userOnSuccess keep isSyncPending and isNaverSyncPending true until all success
handling finishes, including the other affected mutation paths.

In `@src/layout/main/MainLayout.tsx`:
- Around line 194-224: Update MainLayout’s tablet drawer wrapper and menu
controls to manage focus: apply inert while isMobileOpen is false, move focus
into the opened Sidebar drawer, and trap Tab navigation within it. When
closeMobile closes the drawer, restore focus to the “메뉴 열기” button, while
preserving existing overlay and toggle behavior.
🪄 Autofix

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 Plus

Run ID: fdaf2d31-8125-4b8e-a2ae-13467d080857

📥 Commits

Reviewing files that changed from the base of the PR and between f5c1700 and eb10341.

⛔ Files ignored due to path filters (1)
  • src/assets/icon/sidebar/menu.svg is excluded by !**/*.svg and included by src/**
📒 Files selected for processing (53)
  • src/api/timeline/timeline.ts
  • src/components/ads/AdDetailContent.tsx
  • src/components/ads/AdRow.tsx
  • src/components/ads/CampaignPlatformSection.tsx
  • src/components/ads/CampaignRow.tsx
  • src/components/ads/CampaignTable.tsx
  • src/components/ads/skeleton/AdsSkeleton.tsx
  • src/components/common/card/StatCard.tsx
  • src/components/common/dropdownmenu/DropdownMenu.tsx
  • src/components/common/modal/Modal.tsx
  • src/components/common/progressbar/ProgressBar.tsx
  • src/components/dashboard/charts/BudgetGaugeChart.tsx
  • src/components/dashboard/charts/PerformanceEfficiencyChart.tsx
  • src/components/dashboard/charts/performanceEfficiencyChart.config.ts
  • src/components/dashboard/platform/PlatformDetailCard.tsx
  • src/components/dashboard/platform/PlatformViewSwitcher.tsx
  • src/components/dashboard/platform/SinglePlatformView.tsx
  • src/components/dashboard/platform/TopPerformanceList.tsx
  • src/components/dashboard/platform/skeleton/PlatformSkeleton.tsx
  • src/components/integration/NaverConnectModal.tsx
  • src/components/integration/PlatformIntegrationCard.tsx
  • src/components/integration/UpcomingPlatformCard.tsx
  • src/components/integration/skeleton/PlatformIntegrationsSkeleton.tsx
  • src/components/sidebar/Sidebar.tsx
  • src/components/sidebar/SidebarItem.tsx
  • src/components/sidebar/SubMenu.tsx
  • src/components/timeline/TimelineCreateModal.tsx
  • src/components/timeline/TimelineFilterSortMenus.tsx
  • src/components/timeline/TimelinePerformancePanel.tsx
  • src/components/workspace/WorkspaceCard.tsx
  • src/components/workspace/WorkspaceListLoading.tsx
  • src/constants/timeline/filterSort.ts
  • src/constants/timeline/layout.ts
  • src/hooks/integration/useIntegrationOAuthReturn.ts
  • src/hooks/integration/usePlatformSyncMutations.ts
  • src/hooks/sidebar/useSidebar.ts
  • src/hooks/timeline/useTimelineList.ts
  • src/index.css
  • src/layout/main/MainLayout.tsx
  • src/lib/queryKeys.ts
  • src/pages/ads/list/AdsListPage.tsx
  • src/pages/ads/list/CampaignDetail.tsx
  • src/pages/ads/new/CampaignGroup.tsx
  • src/pages/dashboard/platform/PlatformDashboard.tsx
  • src/pages/dashboard/timeline/Timeline.tsx
  • src/pages/integration/PlatformIntegrationsPage.tsx
  • src/pages/workspace/Workspace.tsx
  • src/store/useSidebarStore.ts
  • src/store/useTimelineStore.ts
  • src/styles/utilities.css
  • src/types/timeline/api.ts
  • src/types/timeline/timeline.mock.ts
  • src/utils/timeline/period.ts

Comment thread src/components/ads/CampaignTable.tsx
Comment thread src/components/dashboard/platform/SinglePlatformView.tsx
Comment thread src/components/dashboard/platform/skeleton/PlatformSkeleton.tsx
Comment thread src/components/timeline/TimelinePerformancePanel.tsx
Comment thread src/hooks/integration/usePlatformSyncMutations.ts
Comment thread src/layout/main/MainLayout.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌏 Deploy 배포 관련

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants