Jury dashboard compact layout, assignment redesign, auth fixes
- Jury dashboard: collapse zero-assignment state into single welcome card with inline quick actions; merge completion bar into stats row; tighten spacing - Manual assignment: replace tiny Dialog modal with inline collapsible section featuring searchable juror combobox and multi-select project list with bulk assign - Fix applicant invite URL path (/auth/accept-invite -> /accept-invite) - Add APPLICANT role redirect to /my-submission from root page - Add Applicant label to accept-invite role display - Fix a/an grammar in invitation emails and accept-invite page - Set-password page: use MOPC logo instead of lock icon - Notification bell: remove filter tabs, always show all notifications Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,7 @@ function AcceptInviteContent() {
|
||||
case 'PROGRAM_ADMIN': return 'Program Admin'
|
||||
case 'MENTOR': return 'Mentor'
|
||||
case 'OBSERVER': return 'Observer'
|
||||
case 'APPLICANT': return 'Applicant'
|
||||
default: return role
|
||||
}
|
||||
}
|
||||
@@ -182,7 +183,7 @@ function AcceptInviteContent() {
|
||||
</CardTitle>
|
||||
<CardDescription className="text-base">
|
||||
You've been invited to join the Monaco Ocean Protection Challenge platform
|
||||
{user?.role ? ` as a ${getRoleLabel(user.role)}.` : '.'}
|
||||
{user?.role ? ` as ${/^[aeiou]/i.test(getRoleLabel(user.role)) ? 'an' : 'a'} ${getRoleLabel(user.role)}.` : '.'}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
|
||||
Reference in New Issue
Block a user