Vendor portfolio and avatar menu #54

Closed
exe-dev-bot wants to merge 4 commits from exe-dev-bot/market:vendor-profile-portfolio-avatar-menu into main
Contributor

Summary

This PR completes two MVP tasks:

1. Vendor Profile Portfolio Section

  • Added a "Portfolio" section for archived items on vendor profile pages
  • Shows previously sold items and past work
  • Separate from active items (no filtering)
  • Items show "Archived" badge

2. Avatar Menu in NavBar

  • Replaced theme selector with avatar button for authenticated users
  • Dropdown menu includes:
    • User display name header
    • Dashboard link
    • Switch Theme submenu (inline theme selection)
    • Sign Out button
  • Avatar URL generated from user profile in middleware
  • Dicebear fallback for users without uploaded avatars

Technical Notes

  • Updated middleware to fetch user profile and generate avatar signed URL
  • Added userProfile and userAvatarUrl to Astro.locals
  • Created AvatarMenu React component
  • Fixed vendor page to use authenticated client (anonymous client had JWT parsing issues)

Testing

  • All type checks pass
  • All 112 unit tests pass
  • Manual testing: verified avatar menu, theme switching, and portfolio section
## Summary This PR completes two MVP tasks: ### 1. Vendor Profile Portfolio Section - Added a "Portfolio" section for archived items on vendor profile pages - Shows previously sold items and past work - Separate from active items (no filtering) - Items show "Archived" badge ### 2. Avatar Menu in NavBar - Replaced theme selector with avatar button for authenticated users - Dropdown menu includes: - User display name header - Dashboard link - Switch Theme submenu (inline theme selection) - Sign Out button - Avatar URL generated from user profile in middleware - Dicebear fallback for users without uploaded avatars ### Technical Notes - Updated middleware to fetch user profile and generate avatar signed URL - Added `userProfile` and `userAvatarUrl` to `Astro.locals` - Created `AvatarMenu` React component - Fixed vendor page to use authenticated client (anonymous client had JWT parsing issues) ## Testing - All type checks pass - All 112 unit tests pass - Manual testing: verified avatar menu, theme switching, and portfolio section
refactor: use getAvatarSignedUrl in middleware with authenticated client
Some checks failed
ci.yml / refactor: use getAvatarSignedUrl in middleware with authenticated client (pull_request) Failing after 0s
682cf9c741
Owner

Replaced by #55

Replaced by #55
addison closed this pull request 2026-01-10 05:49:31 -05:00
Some checks are pending
ci.yml / refactor: use getAvatarSignedUrl in middleware with authenticated client (pull_request) Failing after 0s
CI / *
Required

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kwila/market!54
No description provided.