Skip to content

[Bugfix/#184] 트래픽 차트 스켈레톤 고착 / 사이드바 가로 스크롤 수정 - #185

Merged
Seojegyeong merged 4 commits into
developfrom
bugfix/#184
May 5, 2026
Merged

[Bugfix/#184] 트래픽 차트 스켈레톤 고착 / 사이드바 가로 스크롤 수정#185
Seojegyeong merged 4 commits into
developfrom
bugfix/#184

Conversation

@Seojegyeong

@Seojegyeong Seojegyeong commented May 5, 2026

Copy link
Copy Markdown
Collaborator

🚨 관련 이슈

#184

✨ 변경사항

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

✏️ 작업 내용

  1. 사이드바 가로 스크롤 수정
  • 열림 애니메이션 중 overflow-x-hidden 추가로 가로 스크롤바 노출 방지
    <원인>
    사이드바 토글 시 isCollapsed 상태가 즉시 전환되어 텍스트 span이
    whitespace-nowrap 전체 폭으로 즉시 렌더링되지만, Framer Motion의 width
    애니메이션(88px → 256px)은 ~300ms에 걸쳐 진행됩니다.
    이 타이밍 불일치로 내부 콘텐츠가 컨테이너를 초과하고, overflow-y: auto
    CSS 스펙상 overflow-xauto로 강제 전환하면서 가로 스크롤바가 노출됐습니다.
  1. 사이드바 설정 아이콘 중복 제거
  • mainNav에 중복 등록된 설정 아이템 제거, footerNav에만 유지
  1. 실시간 트래픽 차트 SSE 연결 수정
  • fetchEventSource URL에 VITE_API_BASE_URL 적용하여 Vercel 배포 환경에서 catch-all rewrite에 걸리던 문제 해결
    <원인>
    fetchEventSource는 axios를 거치지 않아 axiosInstance의 baseURL
    설정이 적용되지 않습니다. 기존 상대 경로(/api/...)는 개발 환경에서는
    Vite proxy가 처리해줬지만, Vercel에서는 vercel.json의 catch-all rewrite
    ("source": "/(.*)")에 걸려 index.html을 응답받았습니다.
    SSE 이벤트를 수신하지 못해 data가 null로 유지되고 스켈레톤만 표시됐습니다.
  1. 플랫폼별 대시보드 실시간 트래픽 카드 UI
  • 미구현 상태를 Coming Soon 배지 + 안내 문구로 표시

😅 미완성 작업

N/A

📢 논의 사항 및 참고 사항

사이드바 내부 설정 아이콘 2개 있었는데 확인해보니 chore: pageHeader삭제, profileSection내 조직 직책 직관성 향상 커밋(55692a7) 해당 커밋에서 추가된 듯하여 삭제했습니다...

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

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 실시간 트래픽 섹션에 "Coming Soon" 배지 및 설명 메시지 추가
  • 스타일 개선

    • 사이드바 스크롤링 동작 최적화
  • 네비게이션 변경

    • 설정 메뉴가 메인 네비게이션에서 하단 네비게이션으로 이동

- 사이드바 열림 애니메이션 중 overflow-x-hidden 추가로 가로 스크롤바 노출 방지
- fetchEventSource URL에 VITE_API_BASE_URL 적용하여 Vercel 배포 환경에서 SSE 연결 실패 수정
@Seojegyeong
Seojegyeong requested review from YermIm and jjjsun May 5, 2026 10:27
@Seojegyeong Seojegyeong self-assigned this May 5, 2026
@vercel

vercel Bot commented May 5, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
where-you-ad Ready Ready Preview, Comment May 5, 2026 10:33am

@coderabbitai

coderabbitai Bot commented May 5, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@Seojegyeong has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 54 minutes and 23 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 854a217d-768d-452f-9ef8-5d749ee00cc2

📥 Commits

Reviewing files that changed from the base of the PR and between b7d1f9c and 722d515.

📒 Files selected for processing (1)
  • src/hooks/dashboard/useClickStream.ts
📝 Walkthrough

Walkthrough

대시보드 플랫폼 뷰의 트래픽 차트 플레이스홀더를 추가하고, 사이드바 오버플로우 동작을 수정했으며, 설정 메뉴를 푸터로 이동하고, API 스트림 요청 URL 생성 방식을 정규화했습니다.

Changes

플레이스홀더 및 네비게이션 개선

Layer / File(s) Summary
UI 플레이스홀더
src/components/dashboard/platform/AllPlatformView.tsx, src/components/dashboard/platform/SinglePlatformView.tsx
"실시간 트래픽 변화" 카드의 미로딩 상태에 "Coming Soon" 배지와 설명 텍스트를 추가하여 사용자 경험 개선. 로딩 상태는 기존 TrafficChartSkeleton 유지.
네비게이션 구조
src/constants/sidebarNav.ts
메인 네비게이션에서 "설정" 항목을 제거하고 푸터 네비게이션에만 유지하여 네비게이션 계층 정리.
사이드바 스타일
src/components/sidebar/Sidebar.tsx
비축소 상태의 nav에 overflow-x-hidden 추가하여 가로 스크롤 방지 및 애니메이션 중 레이아웃 안정성 개선.
API URL 정규화
src/hooks/dashboard/useClickStream.ts
스트림 요청 URL을 하드코딩된 경로 대신 VITE_API_BASE_URL 환경변수에서 빌드하여 동적 환경 대응력 강화. 末尾 슬래시 제거로 URL 일관성 보장.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

  • WhereYouAd/WhereYouAd-Frontend#184: useClickStream의 SSE URL 상대 경로 버그, Sidebar 수평 스크롤 이슈, 플레이스홀더 UI 누락, 네비게이션 구조 정리 등을 종합적으로 해결합니다.

Possibly related PRs

  • WhereYouAd/WhereYouAd-Frontend#142: 같은 useClickStream.ts 파일의 SSE 기반 훅 구현을 다루고 있으며, 본 PR에서 그 훅의 URL 생성 방식을 개선합니다.
  • WhereYouAd/WhereYouAd-Frontend#175: AllPlatformView와 SinglePlatformView 대시보드 컴포넌트를 초기 구현했으며, 본 PR에서 그 컴포넌트들의 플레이스홀더를 업데이트합니다.
  • WhereYouAd/WhereYouAd-Frontend#174: Sidebar.tsx의 오버플로우/레이아웃 동작을 다루고 있어 본 PR의 스타일 수정과 직접적으로 관련됩니다.

Suggested labels

🐞 BugFix, 🎨 Html&css, 📬 API

Suggested reviewers

  • jjjsun
  • YermIm
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
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 (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항들을 명확하게 요약하고 있으며, 이슈 번호와 함께 사이드바 스크롤 및 트래픽 차트 문제를 구체적으로 표현하고 있습니다.
Description check ✅ Passed PR 설명이 템플릿 구조를 따르고 있으며, 관련 이슈, 변경사항 체크, 상세한 작업 내용(4가지 버그 수정)과 근본 원인을 포함하고 있습니다.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bugfix/#184

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 and usage tips.

@github-actions

github-actions Bot commented May 5, 2026

Copy link
Copy Markdown

📚 Storybook 배포 완료

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

@Seojegyeong Seojegyeong added the 🐞 BugFix Something isn't working label May 5, 2026

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

🤖 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/hooks/dashboard/useClickStream.ts`:
- Around line 37-42: onopen 핸들러에서 현재 response.ok만 검사하는 대신
response.headers.get('content-type')가 'text/event-stream'을 포함하는지 명시적으로 검사하여 유효한
SSE 응답인지 확인하세요; 만약 content-type 검사에 실패하면 onopen에서 예외를 던지거나 retry 흐름으로 넘겨
retryCountRef.current/reset 로직이 작동하도록 하고, 기존에 사용 중인 retryCountRef, setIsError 로
상태를 적절히 업데이트하도록 수정하세요 (참조: onopen 콜백, retryCountRef.current, setIsError).
🪄 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: fb7b190c-ef28-40f4-89f9-08718412db14

📥 Commits

Reviewing files that changed from the base of the PR and between 71ea224 and b7d1f9c.

📒 Files selected for processing (5)
  • src/components/dashboard/platform/AllPlatformView.tsx
  • src/components/dashboard/platform/SinglePlatformView.tsx
  • src/components/sidebar/Sidebar.tsx
  • src/constants/sidebarNav.ts
  • src/hooks/dashboard/useClickStream.ts
💤 Files with no reviewable changes (1)
  • src/constants/sidebarNav.ts

Comment thread src/hooks/dashboard/useClickStream.ts
@YermIm

YermIm commented May 5, 2026

Copy link
Copy Markdown
Collaborator

P4: 확인했습니다!!

@Seojegyeong
Seojegyeong merged commit 0b975ef into develop May 5, 2026
4 checks passed
@Seojegyeong
Seojegyeong deleted the bugfix/#184 branch May 5, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞 BugFix Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐞 [BugFix] 트래픽 차트 스켈레톤 고착 / 사이드바 가로 스크롤 수정

2 participants