From ec30dc83d6ba31b916528e7e6d26b0e99f8970ac Mon Sep 17 00:00:00 2001
From: Matt
Date: Fri, 6 Mar 2026 15:07:40 +0100
Subject: [PATCH] feat: country flag display in remaining app pages (mentor,
jury, admin, applicant)
Extends CountryDisplay component usage to all remaining pages that showed
raw country codes: mentor dashboard/projects, jury competitions/awards,
admin awards/project detail, applicant team, and project-list-compact.
Co-Authored-By: Claude Opus 4.6
---
src/app/(admin)/admin/awards/[id]/page.tsx | 5 +++--
src/app/(admin)/admin/projects/[id]/page.tsx | 3 ++-
src/app/(applicant)/applicant/team/page.tsx | 3 ++-
src/app/(jury)/jury/awards/[id]/page.tsx | 5 +++--
.../[roundId]/projects/[projectId]/page.tsx | 3 ++-
src/app/(jury)/jury/competitions/page.tsx | 3 ++-
src/app/(mentor)/mentor/page.tsx | 3 ++-
.../(mentor)/mentor/projects/[id]/page.tsx | 3 ++-
src/app/(mentor)/mentor/projects/page.tsx | 3 ++-
.../dashboard/project-list-compact.tsx | 21 ++++++++++++-------
10 files changed, 33 insertions(+), 19 deletions(-)
diff --git a/src/app/(admin)/admin/awards/[id]/page.tsx b/src/app/(admin)/admin/awards/[id]/page.tsx
index 8bce89a..b413feb 100644
--- a/src/app/(admin)/admin/awards/[id]/page.tsx
+++ b/src/app/(admin)/admin/awards/[id]/page.tsx
@@ -113,6 +113,7 @@ import {
verticalListSortingStrategy,
} from '@dnd-kit/sortable'
import { CSS } from '@dnd-kit/utilities'
+import { CountryDisplay } from '@/components/shared/country-display'
const STATUS_COLORS: Record = {
DRAFT: 'secondary',
@@ -1022,7 +1023,7 @@ export default function AwardDetailPage({
'-'
)}
- {project.country || '-'}
+ {project.country ? : '-'}
- {[project.teamName, project.country].filter(Boolean).join(' \u00b7 ')}
+ {project.teamName}{project.teamName && project.country ? ' · ' : ''}{project.country ? : ''}
diff --git a/src/app/(mentor)/mentor/page.tsx b/src/app/(mentor)/mentor/page.tsx
index aca14f8..b5073d4 100644
--- a/src/app/(mentor)/mentor/page.tsx
+++ b/src/app/(mentor)/mentor/page.tsx
@@ -40,6 +40,7 @@ import {
} from 'lucide-react'
import { formatDateOnly } from '@/lib/utils'
import { AnimatedCard } from '@/components/shared/animated-container'
+import { CountryDisplay } from '@/components/shared/country-display'
// Status badge colors
const statusColors: Record = {
@@ -336,7 +337,7 @@ export default function MentorDashboard() {
{project.country && (
- {project.country}
+
)}
diff --git a/src/app/(mentor)/mentor/projects/[id]/page.tsx b/src/app/(mentor)/mentor/projects/[id]/page.tsx
index fa50e56..2176d38 100644
--- a/src/app/(mentor)/mentor/projects/[id]/page.tsx
+++ b/src/app/(mentor)/mentor/projects/[id]/page.tsx
@@ -57,6 +57,7 @@ import {
EyeOff,
} from 'lucide-react'
import { formatDateOnly, getInitials } from '@/lib/utils'
+import { CountryDisplay } from '@/components/shared/country-display'
import { toast } from 'sonner'
interface PageProps {
@@ -251,7 +252,7 @@ function ProjectDetailContent({ projectId }: { projectId: string }) {
Location
- {[project.geographicZone, project.country].filter(Boolean).join(', ')}
+ {project.geographicZone}{project.geographicZone && project.country ? ', ' : ''}{project.country ? : null}
diff --git a/src/app/(mentor)/mentor/projects/page.tsx b/src/app/(mentor)/mentor/projects/page.tsx
index a05b561..992f158 100644
--- a/src/app/(mentor)/mentor/projects/page.tsx
+++ b/src/app/(mentor)/mentor/projects/page.tsx
@@ -23,6 +23,7 @@ import {
Crown,
} from 'lucide-react'
import { formatDateOnly } from '@/lib/utils'
+import { CountryDisplay } from '@/components/shared/country-display'
// Status badge colors
const statusColors: Record = {
@@ -143,7 +144,7 @@ export default function MentorProjectsPage() {
{project.country && (
- {project.country}
+
)}
diff --git a/src/components/dashboard/project-list-compact.tsx b/src/components/dashboard/project-list-compact.tsx
index 18b594f..4fa9549 100644
--- a/src/components/dashboard/project-list-compact.tsx
+++ b/src/components/dashboard/project-list-compact.tsx
@@ -12,7 +12,7 @@ import {
} from '@/components/ui/card'
import { StatusBadge } from '@/components/shared/status-badge'
import { ProjectLogo } from '@/components/shared/project-logo'
-import { getCountryName } from '@/lib/countries'
+import { getCountryName, getCountryFlag, normalizeCountryToCode } from '@/lib/countries'
import { formatDateOnly, truncate, formatRelativeTime } from '@/lib/utils'
type BaseProject = {
@@ -133,13 +133,18 @@ export function ProjectListCompact({
)}
>
) : (
- [
- project.teamName,
- project.country ? getCountryName(project.country) : null,
- formatDateOnly(project.submittedAt || project.createdAt),
- ]
- .filter(Boolean)
- .join(' \u00b7 ')
+ <>
+ {[
+ project.teamName,
+ formatDateOnly(project.submittedAt || project.createdAt),
+ ].filter(Boolean).join(' \u00b7 ')}
+ {project.country && (() => {
+ const code = normalizeCountryToCode(project.country)
+ const flag = code ? getCountryFlag(code) : null
+ const name = code ? getCountryName(code) : project.country
+ return <> · {flag && {flag}}{name}>
+ })()}
+ >
)}