Skip to content

Feat/enhancement#45

Merged
igun997 merged 15 commits into
cds-id:developfrom
inact25:feat/enhancement
Dec 21, 2025
Merged

Feat/enhancement#45
igun997 merged 15 commits into
cds-id:developfrom
inact25:feat/enhancement

Conversation

@inact25

@inact25 inact25 commented Dec 20, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Release Notes

  • New Features

    • Tag resource previews now open in a modal dialog with an integrated download button for designed tags, providing a more streamlined viewing experience
  • Style

    • Sidebar navigation now uses sticky positioning with vertical scrolling, ensuring navigation remains easily accessible when working with extensive menu items

✏️ Tip: You can customize this high-level summary in your review settings.

@inact25 inact25 requested a review from igun997 as a code owner December 20, 2025 04:05
@coderabbitai

coderabbitai Bot commented Dec 20, 2025

Copy link
Copy Markdown

Walkthrough

The desktop sidebar now implements sticky positioning with fixed height and vertical scrolling capability. A preview link in the tag resources card is replaced with a Dialog-based modal displaying the designed image and an internal download button.

Changes

Cohort / File(s) Summary
Sidebar styling
src/app/manage/sidebar.tsx
Added sticky positioning with top offset and fixed height (sticky top-16 h-[calc(100vh-4rem)] overflow-y-auto) to enable vertical scrolling while keeping sidebar header in view.
Tag preview modal
src/app/manage/tags/_components/tag-resources-card.tsx
Replaced inline preview anchor link with Dialog component structure; DialogTrigger opens modal displaying designed image with integrated download button; maintains separate fallback download button outside modal.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Sidebar change: Pure styling update; verify responsive behavior on various viewport sizes
  • Tag modal change: Dialog component integration; confirm modal opens/closes correctly and both download paths (internal and external) function as expected

Poem

🐰 The sidebar now sticks with grace,
While modals dance in preview space,
With sticky heights and modal cheer,
Downloads dance from far and near!
A humble hop, a UI leap! 🎀

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Feat/enhancement' is vague and generic, lacking specificity about the actual changes made (sidebar sticky positioning and dialog-based modal for tag previews). Use a more descriptive title that clearly indicates the main changes, such as 'Add sticky sidebar positioning and image preview modal' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

@inact25 inact25 self-assigned this Dec 20, 2025

@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

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ecbd1a1 and eb6c7d9.

📒 Files selected for processing (2)
  • src/app/manage/sidebar.tsx (1 hunks)
  • src/app/manage/tags/_components/tag-resources-card.tsx (2 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Use the cn() utility (clsx + tailwind-merge) for Tailwind CSS class composition

Files:

  • src/app/manage/sidebar.tsx
  • src/app/manage/tags/_components/tag-resources-card.tsx
src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

Utilize path alias @/* mapped to ./src/* throughout the codebase for imports

Files:

  • src/app/manage/sidebar.tsx
  • src/app/manage/tags/_components/tag-resources-card.tsx
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,js,jsx}: Use Prettier for code formatting with configuration defined in project root
Use ESLint for code linting across the project via npm run lint command

Files:

  • src/app/manage/sidebar.tsx
  • src/app/manage/tags/_components/tag-resources-card.tsx
🧠 Learnings (1)
📚 Learning: 2025-12-16T04:17:42.431Z
Learnt from: CR
Repo: cds-id/etags PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-16T04:17:42.431Z
Learning: Applies to src/**/*.{tsx} : Use shadcn/ui components from src/components/ui/ for UI development

Applied to files:

  • src/app/manage/tags/_components/tag-resources-card.tsx
🧬 Code graph analysis (1)
src/app/manage/tags/_components/tag-resources-card.tsx (2)
src/components/ui/dialog.tsx (5)
  • Dialog (133-133)
  • DialogTrigger (142-142)
  • DialogContent (135-135)
  • DialogHeader (138-138)
  • DialogTitle (141-141)
src/components/ui/button.tsx (1)
  • Button (60-60)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (4)
src/app/manage/tags/_components/tag-resources-card.tsx (3)

13-19: LGTM! Dialog imports follow best practices.

The Dialog component imports are correctly structured using the path alias pattern and match the project's shadcn/ui component usage.

Based on learnings, shadcn/ui components from src/components/ui/ are used for UI development.


118-151: LGTM! Dialog implementation follows shadcn/ui patterns correctly.

The Dialog-based preview modal is well-structured with proper use of DialogTrigger, DialogContent, DialogHeader, and DialogTitle. The download button inside the modal correctly uses the asChild pattern. The dual-option UX (preview in modal vs. direct download) provides good flexibility for users.

Note: Ensure the className syntax issue on line 125 is fixed as flagged in a separate comment.

Based on learnings, shadcn/ui components are properly utilized for UI development.


132-137: The Next.js Image component supports internal path strings as documented. Internal path strings are valid src values and internal API routes work with default Image optimization. The unoptimized prop is useful for images that do not benefit from optimization such as small images (less than 1KB), vector images (SVG), or animated images (GIF), and should be used for images requiring authentication. This implementation has proper width/height props and no authentication requirements, so it will work correctly with default Image optimization.

Likely an incorrect or invalid review comment.

src/app/manage/sidebar.tsx (1)

332-332: Header height verification confirmed—sticky positioning is correct.

The header in src/app/manage/layout.tsx is h-16 (4rem/64px) on medium breakpoints and above, which perfectly matches the sidebar's sticky offset (top-16) and height calculation (h-[calc(100vh-4rem)]). Since the sidebar uses md:block, it only displays on these breakpoints where the header is consistently 4rem tall. The layout is correctly implemented.

Comment thread src/app/manage/tags/_components/tag-resources-card.tsx
@igun997 igun997 merged commit 40a19a9 into cds-id:develop Dec 21, 2025
6 checks passed
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.

2 participants