Conversation
motirebuma
commented
Apr 23, 2026
- Resolved issues related to creating posts.
- Fixed the functionality for updating user information, including name, email, and password.
- Implemented the notification functionality.
- Completed the “Forgot Password” feature in the Settings and Privacy section.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR updates the frontend to support notification display/navigation, improves post creation UX, and refines settings/account update flows (including some related UI cleanup in dashboard navigation).
Changes:
- Updated notifications: improved user id resolution (
_idvsid), badge rendering, avatar rendering viaDisplayAvatar, and corrected navigation route to/dashboard/notifications. - Reworked the groups combobox UI/UX (Popover-based searchable list with inline “create” option, keyboard handling, and sizing).
- Improved post creation feedback (success toast) and tightened alert rendering/reset behavior; added missing accessible dialog titles in several “Create Quote” dialogs.
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| quotevote-frontend/src/types/notification.ts | Loosens NotificationUser.avatar typing to support string/object avatar payloads. |
| quotevote-frontend/src/graphql/mutations.ts | Simplifies UPDATE_USER selection set by removing unused fields. |
| quotevote-frontend/src/components/ui/combobox.tsx | Replaces Dialog-based combobox with Popover-based searchable/createable combobox behavior. |
| quotevote-frontend/src/components/SubmitPost/SubmitPostForm.tsx | Adds success toast on post creation; resets error state when dismissing alert; only shows alert when error exists. |
| quotevote-frontend/src/components/Sidebar/Sidebar.tsx | Adds screen-reader-only DialogTitle for the Create Quote dialog. |
| quotevote-frontend/src/components/settings/SettingsContent.tsx | Removes admin-only “Manage Invites” button from settings UI. |
| quotevote-frontend/src/components/Notifications/NotificationMenu.tsx | Uses `_id |
| quotevote-frontend/src/components/Notifications/NotificationLists.tsx | Uses DisplayAvatar for notification list avatars; removes custom URL extraction logic. |
| quotevote-frontend/src/components/Notifications/Notification.tsx | Fixes navigation target to /dashboard/notifications. |
| quotevote-frontend/src/components/Navbars/MainNavBar.tsx | Adds screen-reader-only DialogTitle for the Create Quote dialog. |
| quotevote-frontend/src/app/dashboard/settings/SettingsPageClient.tsx | Updates how settings form applies updateUser results and resets form fields. |
| quotevote-frontend/src/app/dashboard/notifications/NotificationsPageContent.tsx | Uses `_id |
| quotevote-frontend/src/app/dashboard/layout.tsx | Removes “manage-invites” from nav pages; adds sr-only DialogTitle for Create Quote dialog. |
| quotevote-frontend/src/app/dashboard/explore/ExploreContent.tsx | Adds screen-reader-only DialogTitle for the Create Quote dialog. |
| quotevote-frontend/src/tests/components/settings/SettingsContent.test.tsx | Updates settings tests to reflect removal of “Manage Invites” UI. |
| quotevote-backend/app/server.ts | Trims whitespace in GraphQL schema string. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| {label && ( | ||
| <Label htmlFor="combobox-input" className={cn(error && 'text-destructive')}> | ||
| <Label className={cn('mb-1 block text-sm font-medium', error && 'text-destructive')}> | ||
| {label} | ||
| </Label> | ||
| )} |
There was a problem hiding this comment.
The combobox label is no longer programmatically associated with the interactive control (trigger button / search input). This reduces screen-reader usability because focusing the combobox won’t announce its label. Consider giving the trigger (or input) a stable id and wiring the to it, or using aria-labelledby/aria-label on the trigger + input.
| { path: '/dashboard/profile', page: 'profile' }, | ||
| { path: '/dashboard/notifications', page: 'notifications' }, | ||
| { path: '/dashboard/settings', page: 'settings' }, | ||
| { path: '/dashboard/manage-invites', page: 'manage-invites' }, | ||
| { path: '/dashboard/control-panel', page: 'control-panel' }, | ||
| ] as const; |
There was a problem hiding this comment.
This change removes “/dashboard/manage-invites” from the dashboard nav pages, which is a user-facing behavior change but isn’t mentioned in the PR description. Please either document this in the PR (and any related migration notes) or confirm it’s intentional and ensure there’s still a supported way for admins to reach invite management if that feature remains.