Skip to content

UAT 네비게이션 링크 라우팅 적용 - #171

Merged
seonghobae merged 1 commit into
masterfrom
fix/dashboard-links-uat-20260511
May 12, 2026
Merged

seonghobae merged 1 commit into
masterfrom
fix/dashboard-links-uat-20260511

Conversation

@seonghobae

@seonghobae seonghobae commented May 12, 2026

Copy link
Copy Markdown
Contributor

목표

사용자 인수 테스트(UAT) 과정에서 왼쪽 사이드바의 메뉴 버튼들이 실제 기능 페이지(/settings, /ai-hub, /prompt-studio)로 라우팅되지 않고 #main-content 앵커로만 이동하는 결함을 해결합니다.

변경 사항

  1. DashboardLayout.tsx 내의 더미 앵커 태그(<a>)를 Next.js의 <Link> 컴포넌트로 교체했습니다.
  2. /ai-hub, /prompt-studio, /settings 실제 페이지 경로들을 매핑하여 클릭 시 정상적으로 동작하도록 구성했습니다.
  3. 현재 활성화된 페이지 상태(active)를 usePathname을 사용해 동적으로 하이라이팅되도록 수정했습니다.

Summary by CodeRabbit

  • New Features

    • Added new sidebar navigation sections: "AI Hub", "Prompt Studio", and workspace settings.
  • Improvements

    • Enhanced sidebar navigation with improved active state detection for current page highlighting.

Review Change Stack

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 909de50cfe710ad92ef12d00e0cf78f659ccb291:

  • 2 required check(s) are not successful on 909de50.\n- Missing current-head CodeRabbit/coderabbitai evidence for 909de50.\n

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 909de50cfe710ad92ef12d00e0cf78f659ccb291:

  • 1 required check(s) are not successful on 909de50.\n- Missing current-head CodeRabbit/coderabbitai evidence for 909de50.\n

Comment thread frontend/src/components/DashboardLayout.tsx
@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 909de50cfe710ad92ef12d00e0cf78f659ccb291:

  • 1 unresolved current review thread(s) remain.\n- 1 required check(s) are not successful on 909de50.\n- Missing current-head CodeRabbit/coderabbitai evidence for 909de50.\n

@seonghobae

Copy link
Copy Markdown
Contributor Author

@coderabbitai approve

@greptile-apps

greptile-apps Bot commented May 12, 2026

Copy link
Copy Markdown

Greptile Summary

  • 사이드바의 <a href="#main-content"> 더미 링크를 Next.js <Link> 컴포넌트로 교체하고, usePathname()으로 현재 경로에 따른 활성 메뉴 하이라이팅을 구현했습니다. 핵심 라우팅 기능은 정상적으로 동작합니다.
  • DashboardLayoutconst pathname = usePathname()(115번째 줄)는 실제로 사용되지 않는 불필요한 선언이며, mailNavItems 교체로 인해 고아가 된 아이콘 임포트(Home, FileText, Send, Star) 4개도 정리가 필요합니다.
  • pathname === href 방식의 정확 매칭은 현재 단일 경로 구조에서는 문제없지만, 추후 하위 경로가 추가될 경우 활성 상태 감지가 누락될 수 있습니다.

Confidence Score: 4/5

핵심 라우팅 기능은 올바르게 구현되었으며, P2 수준의 코드 정리 항목만 남아 있어 병합에 큰 문제는 없습니다.

P2 이슈만 존재(미사용 변수, 고아 임포트, 경로 매칭 방식)하며 런타임 기능을 깨는 결함은 없습니다. P2만 있을 경우 4/5가 상한입니다.

frontend/src/components/DashboardLayout.tsx — 미사용 임포트 및 변수 정리 필요

Important Files Changed

Filename Overview
frontend/src/components/DashboardLayout.tsx 사이드바 네비게이션을 <a href="#main-content">에서 Next.js <Link>로 교체하고, usePathname()으로 현재 경로 기반 활성 상태를 구현했으나, DashboardLayout 내 미사용 pathname 변수와 고아가 된 아이콘 임포트 4개(Home, FileText, Send, Star)가 남아 있음.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[사이드바 메뉴 클릭] --> B[NavLink 컴포넌트]
    B --> C[usePathname 호출]
    C --> D{pathname === href?}
    D -- 일치 --> E[active 스타일 + aria-current=page]
    D -- 불일치 --> F[기본 스타일]
    E --> G[Next.js Link 렌더링]
    F --> G
    G --> H[페이지 이동]
    H --> I[루트 - 받은 메일]
    H --> J[ai-hub - AI Hub]
    H --> K[prompt-studio - Prompt Studio]
    H --> L[settings - 워크스페이스 설정]
Loading

Reviews (1): Last reviewed commit: "fix(frontend): implement actual Next.js ..." | Re-trigger Greptile

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Comments resolved and changes approved.

Comment thread frontend/src/components/DashboardLayout.tsx
Comment thread frontend/src/components/DashboardLayout.tsx
Comment thread frontend/src/components/DashboardLayout.tsx
@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'version'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

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: e521f0e3-c938-4c59-b9c3-1e16a03bbf31

📥 Commits

Reviewing files that changed from the base of the PR and between 823bb7b and 909de50.

📒 Files selected for processing (1)
  • frontend/src/components/DashboardLayout.tsx

📝 Walkthrough

Walkthrough

DashboardLayout.tsx refactors sidebar navigation to use Next.js routing primitives. The NavLink component now accepts an href prop, computes active state from usePathname(), and renders with next/link. Navigation items are redefined with updated sections, and the sidebar rendering is consolidated into a single mapped block.

Changes

Navigation refactoring to use Next.js routing

Layer / File(s) Summary
Route-aware navigation imports
frontend/src/components/DashboardLayout.tsx
Link and usePathname imports are added from Next.js to enable route-aware link rendering and pathname detection in the layout.
NavLink component refactoring
frontend/src/components/DashboardLayout.tsx
NavLink component now accepts an optional href prop (defaulting to #main-content) and computes active state by comparing the current pathname from usePathname() against the provided href; the element switches from a plain anchor to a next/link wrapper.
Navigation data and layout integration
frontend/src/components/DashboardLayout.tsx
mailNavItems dataset is redefined with new workspace and AI-related navigation entries; DashboardLayout calls usePathname() and simplifies the sidebar nav section to a single block that maps over mailNavItems and passes href to each NavLink for route-aware active state computation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Links now follow the path we roam,
No active props to find our home—
Next.js guides where we should go,
Workspace sections steal the show! ✨

🚥 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: implementing UAT navigation link routing in the dashboard layout, replacing dummy anchors with Next.js Link components for proper page routing.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/dashboard-links-uat-20260511

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

@github-actions

Copy link
Copy Markdown
Contributor

PR governance metadata gate is not ready for 909de50cfe710ad92ef12d00e0cf78f659ccb291:

  • 4 unresolved current review thread(s) remain.\n- Missing current-head CodeRabbit/coderabbitai evidence for 909de50.\n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant