-
Notifications
You must be signed in to change notification settings - Fork 566
Fix broken docs links #1075
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Fix broken docs links #1075
Conversation
Signed-off-by: Pranjali Bhardwaj <pranjalisharma6543@gmail.com>
📝 WalkthroughWalkthroughThree files updated to add frontend documentation: new Gallery View and UI Components documentation files created, and MkDocs navigation updated to include these entries. Total additions: 125 lines across documentation and configuration. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@docs/frontend/ui-components.md`:
- Around line 1-88: The ShadCN-style primitives table is missing the Slider
component used by the media player; add a new row for Slider in the primitives
table (ShadCN-style primitives section) listing `Slider` as the component and a
short role like "Range slider / media seek control" so the docs reflect the
actual primitive used by NetflixStylePlayer; ensure the name matches the Slider
component symbol used in the codebase.
| # UI Components | ||
|
|
||
| PictoPy’s frontend uses a mix of shared primitives (based on ShadCN) and app-specific components. This page gives an overview of both so you can find and reuse the right parts when building or changing the UI. | ||
|
|
||
| ## Overview | ||
|
|
||
| - **Primitives** live under `components/ui/` and provide buttons, inputs, dialogs, and other low-level building blocks. | ||
| - **Feature components** implement gallery, onboarding, navigation, and media behaviour and often use these primitives. | ||
|
|
||
| ## ShadCN-style primitives (`components/ui/`) | ||
|
|
||
| These are the base components used across the app: | ||
|
|
||
| | Component | Role | | ||
| |----------------|--------------------------------------------------| | ||
| | `button` | Buttons with variants (default, outline, ghost) | | ||
| | `card` | Card container with header, content, footer | | ||
| | `dialog` | Modal dialogs | | ||
| | `input` | Text inputs | | ||
| | `label` | Form labels | | ||
| | `textarea` | Multi-line text input | | ||
| | `badge` | Tags and status badges | | ||
| | `alert` | Inline alerts and messages | | ||
| | `avatar` | User or entity avatars | | ||
| | `dropdown-menu`| Dropdown menus | | ||
| | `scroll-area` | Custom scrollable areas | | ||
| | `sidebar` | App sidebar layout | | ||
| | `sheet` | Slide-out panels | | ||
| | `separator` | Visual dividers | | ||
| | `switch` | Toggle switches | | ||
| | `radio-group` | Radio button groups | | ||
| | `pagination` | Pagination controls | | ||
| | `progress` | Progress bars | | ||
| | `skeleton` | Loading skeletons | | ||
| | `tooltip` | Hover tooltips | | ||
| | `aspect-ratio` | Fixed aspect-ratio wrapper | | ||
|
|
||
| App-specific UI pieces in the same area: | ||
|
|
||
| - **404** – Not-found page layout | ||
| - **ErrorPage** – Full-page error view | ||
| - **LoadingScreen** – App loading screen | ||
| - **Icons** – Shared icon set | ||
| - **PaginationControls** – Pagination tuned for the gallery | ||
|
|
||
| ## Feature components | ||
|
|
||
| These implement specific features and often use the primitives above: | ||
|
|
||
| ### Media and gallery | ||
|
|
||
| - **Media/** – `ChronologicalGallery`, `ImageCard`, `ImageViewer`, `MediaView`, `MediaThumbnails`, `MediaInfoPanel`, `MediaViewControls`, `ZoomControls`, `NavigationButtons`, `ImageTags` | ||
| - **FaceCollections** – Face clusters and naming UI | ||
|
|
||
| ### Navigation and layout | ||
|
|
||
| - **Navigation/Navbar** – Top app bar | ||
| - **Navigation/Sidebar** – App sidebar (e.g. `AppSidebar`) | ||
|
|
||
| ### Onboarding and settings | ||
|
|
||
| - **OnboardingSteps/** – Steps, folder setup, avatar choice, theme selection, server check, etc. | ||
| - **account-settings** – User account and preference UI | ||
|
|
||
| ### Dialogs and feedback | ||
|
|
||
| - **Dialog/** – `InfoDialog`, `FaceSearchDialog` | ||
| - **Loader/** – `GlobalLoader` | ||
| - **EmptyStates/** – `EmptyGalleryState`, `EmptyAITaggingState` | ||
|
|
||
| ### Other | ||
|
|
||
| - **FolderPicker/** – Folder selection and related dialogs (e.g. `DeleteImageDialog`) | ||
| - **ThemeToggle** – Light/dark theme switch | ||
| - **Timeline/** – `TimelineScrollbar` | ||
| - **Updater/** – `UpdateDialog` | ||
| - **VideoPlayer/** – `NetflixStylePlayer` | ||
| - **WebCam/** – `WebCamComponent` | ||
|
|
||
| ## Styling | ||
|
|
||
| UI components are styled with **Tailwind CSS**. Shared look and behaviour (including themes) are kept consistent via Tailwind classes and the design tokens used by the ShadCN-based components. | ||
|
|
||
| ## Related documentation | ||
|
|
||
| - [Gallery View](gallery-view.md) – How the main gallery is built from these components | ||
| - [State Management](state-management.md) – How components connect to Redux | ||
| - [Screenshots](screenshots.md) – Screenshots of the app using these components |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify that documented component directories exist
echo "=== Checking frontend/src/components/ui (ShadCN primitives) ==="
if [ -d "frontend/src/components/ui" ]; then
echo "✓ Found: frontend/src/components/ui"
echo " Subdirectories:"
ls -1 "frontend/src/components/ui" 2>/dev/null
else
echo "? Path not found at frontend/src/components/ui, searching..."
find . -type d -name "ui" | grep -i components | head -5
fi
echo ""
echo "=== Checking for feature component directories ==="
# Check for Media directory
if fd -t d "^Media$" frontend 2>/dev/null; then
echo "✓ Found Media directory"
fi
# Check for Navigation directory
if fd -t d "^Navigation$" frontend 2>/dev/null; then
echo "✓ Found Navigation directory"
fi
# Check for OnboardingSteps directory
if fd -t d "^OnboardingSteps$" frontend 2>/dev/null; then
echo "✓ Found OnboardingSteps directory"
fi
# Check for Dialog directory
if fd -t d "^Dialog$" frontend 2>/dev/null; then
echo "✓ Found Dialog directory"
fi
echo ""
echo "=== List all component directories ==="
find frontend/src/components -type d -maxdepth 1 2>/dev/null | sortRepository: AOSSIE-Org/PictoPy
Length of output: 1276
🏁 Script executed:
#!/bin/bash
# Check if Slider is exported or used in the codebase
echo "=== Checking Slider.tsx content and exports ==="
head -20 frontend/src/components/ui/Slider.tsx
echo ""
echo "=== Checking if Slider is referenced in index/barrel exports ==="
if [ -f "frontend/src/components/ui/index.tsx" ] || [ -f "frontend/src/components/ui/index.ts" ]; then
echo "Found index file, checking for Slider export..."
cat frontend/src/components/ui/index.ts* 2>/dev/null || cat frontend/src/components/ui/index.tsx 2>/dev/null | grep -i slider
else
echo "No index file found"
fi
echo ""
echo "=== Checking usage of Slider component in the codebase ==="
rg "from.*components/ui.*Slider|import.*Slider" frontend/src --max-count 5Repository: AOSSIE-Org/PictoPy
Length of output: 911
Add missing Slider component to the primitives table.
The documentation is comprehensive and well-organized with accurate component paths and directory structure. However, the Slider primitive component exists in frontend/src/components/ui/Slider.tsx and is actively used by NetflixStylePlayer, but it's not included in the ShadCN-style primitives table. Add it to the table for complete inventory.
🤖 Prompt for AI Agents
In `@docs/frontend/ui-components.md` around lines 1 - 88, The ShadCN-style
primitives table is missing the Slider component used by the media player; add a
new row for Slider in the primitives table (ShadCN-style primitives section)
listing `Slider` as the component and a short role like "Range slider / media
seek control" so the docs reflect the actual primitive used by
NetflixStylePlayer; ensure the name matches the Slider component symbol used in
the codebase.
Issue: #1074
Summary of changes:
Describes the main gallery: grid layout, date grouping, filtering.
Lists components (ChronologicalGallery, ImageCard, MediaView, ImageViewer, MediaThumbnails, MediaInfoPanel, etc.).
Cross-links to Screenshots, State Management, and UI Components.
ShadCN-style primitives: table of button, card, dialog, input, badge, avatar, sidebar, etc., and app-specific bits (404, ErrorPage, LoadingScreen, Icons, PaginationControls).
Feature components: Media, Navigation, OnboardingSteps, Dialog, Loader, EmptyStates, FolderPicker, ThemeToggle, Timeline, Updater, VideoPlayer, WebCam.
Short “Related documentation” section linking to Gallery View, State Management, and Screenshots.
Under Frontend, nav updated to:
UI Components → frontend/ui-components.md
Gallery View → frontend/gallery-view.md
State Management → frontend/state-management.md
Screenshots → frontend/screenshots.md
docs/index.md already points to ./frontend/ui-components and ./frontend/gallery-view. Those targets exist now, so the links work. No change was made to docs/index.md.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.