diff --git a/README.md b/README.md
index 0ede2c5..0e122ad 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@
+
diff --git a/client/src/i18n/translations/ar.ts b/client/src/i18n/translations/ar.ts
index cd22c0c..dee4b2e 100644
--- a/client/src/i18n/translations/ar.ts
+++ b/client/src/i18n/translations/ar.ts
@@ -85,6 +85,7 @@ const ar: Record = {
'dashboard.sharedBy': 'شاركها {name}',
'dashboard.days': 'الأيام',
'dashboard.places': 'الأماكن',
+ 'dashboard.members': 'ال חברים',
'dashboard.archive': 'أرشفة',
'dashboard.restore': 'استعادة',
'dashboard.archived': 'مؤرشفة',
diff --git a/client/src/i18n/translations/br.ts b/client/src/i18n/translations/br.ts
index b22072d..762b6ee 100644
--- a/client/src/i18n/translations/br.ts
+++ b/client/src/i18n/translations/br.ts
@@ -80,6 +80,7 @@ const br: Record = {
'dashboard.sharedBy': 'Compartilhada por {name}',
'dashboard.days': 'Dias',
'dashboard.places': 'Lugares',
+ 'dashboard.members': 'Parceiros de viagem',
'dashboard.archive': 'Arquivar',
'dashboard.restore': 'Restaurar',
'dashboard.archived': 'Arquivada',
diff --git a/client/src/i18n/translations/cs.ts b/client/src/i18n/translations/cs.ts
index 559e547..77b1736 100644
--- a/client/src/i18n/translations/cs.ts
+++ b/client/src/i18n/translations/cs.ts
@@ -81,6 +81,7 @@ const cs: Record = {
'dashboard.sharedBy': 'Sdílí {name}',
'dashboard.days': 'Dní',
'dashboard.places': 'Míst',
+ 'dashboard.members': 'Cestovní parťáci',
'dashboard.archive': 'Archivovat',
'dashboard.restore': 'Obnovit',
'dashboard.archived': 'Archivováno',
diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts
index c118948..85c4df7 100644
--- a/client/src/i18n/translations/de.ts
+++ b/client/src/i18n/translations/de.ts
@@ -80,6 +80,7 @@ const de: Record = {
'dashboard.sharedBy': 'Geteilt von {name}',
'dashboard.days': 'Tage',
'dashboard.places': 'Orte',
+ 'dashboard.members': 'Reise-Buddies',
'dashboard.archive': 'Archivieren',
'dashboard.restore': 'Wiederherstellen',
'dashboard.archived': 'Archiviert',
diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts
index 5be3f50..86bd28a 100644
--- a/client/src/i18n/translations/en.ts
+++ b/client/src/i18n/translations/en.ts
@@ -80,6 +80,7 @@ const en: Record = {
'dashboard.sharedBy': 'Shared by {name}',
'dashboard.days': 'Days',
'dashboard.places': 'Places',
+ 'dashboard.members': 'Buddies',
'dashboard.archive': 'Archive',
'dashboard.restore': 'Restore',
'dashboard.archived': 'Archived',
diff --git a/client/src/i18n/translations/es.ts b/client/src/i18n/translations/es.ts
index 381ab28..a72bfe0 100644
--- a/client/src/i18n/translations/es.ts
+++ b/client/src/i18n/translations/es.ts
@@ -81,6 +81,7 @@ const es: Record = {
'dashboard.sharedBy': 'Compartido por {name}',
'dashboard.days': 'Días',
'dashboard.places': 'Lugares',
+ 'dashboard.members': 'Compañeros de viaje',
'dashboard.archive': 'Archivar',
'dashboard.restore': 'Restaurar',
'dashboard.archived': 'Archivado',
diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts
index da25c20..c2b53c3 100644
--- a/client/src/i18n/translations/fr.ts
+++ b/client/src/i18n/translations/fr.ts
@@ -80,6 +80,7 @@ const fr: Record = {
'dashboard.sharedBy': 'Partagé par {name}',
'dashboard.days': 'Jours',
'dashboard.places': 'Lieux',
+ 'dashboard.members': 'Compagnons de voyage',
'dashboard.archive': 'Archiver',
'dashboard.restore': 'Restaurer',
'dashboard.archived': 'Archivé',
diff --git a/client/src/i18n/translations/hu.ts b/client/src/i18n/translations/hu.ts
index a567d1c..98d71d0 100644
--- a/client/src/i18n/translations/hu.ts
+++ b/client/src/i18n/translations/hu.ts
@@ -80,6 +80,7 @@ const hu: Record = {
'dashboard.sharedBy': 'Megosztotta: {name}',
'dashboard.days': 'nap',
'dashboard.places': 'hely',
+ 'dashboard.members': 'Útitársak',
'dashboard.archive': 'Archiválás',
'dashboard.restore': 'Visszaállítás',
'dashboard.archived': 'Archivált',
diff --git a/client/src/i18n/translations/it.ts b/client/src/i18n/translations/it.ts
index fac9285..b6edd83 100644
--- a/client/src/i18n/translations/it.ts
+++ b/client/src/i18n/translations/it.ts
@@ -80,6 +80,7 @@ const it: Record = {
'dashboard.sharedBy': 'Condiviso da {name}',
'dashboard.days': 'Giorni',
'dashboard.places': 'Luoghi',
+ 'dashboard.members': 'Compagni di viaggio',
'dashboard.archive': 'Archivia',
'dashboard.restore': 'Ripristina',
'dashboard.archived': 'Archiviati',
diff --git a/client/src/i18n/translations/nl.ts b/client/src/i18n/translations/nl.ts
index 6c88ef6..4c97a6c 100644
--- a/client/src/i18n/translations/nl.ts
+++ b/client/src/i18n/translations/nl.ts
@@ -80,6 +80,7 @@ const nl: Record = {
'dashboard.sharedBy': 'Gedeeld door {name}',
'dashboard.days': 'Dagen',
'dashboard.places': 'Plaatsen',
+ 'dashboard.members': 'Reisgenoten',
'dashboard.archive': 'Archiveren',
'dashboard.restore': 'Herstellen',
'dashboard.archived': 'Gearchiveerd',
diff --git a/client/src/i18n/translations/ru.ts b/client/src/i18n/translations/ru.ts
index 9e1bb55..096a7b0 100644
--- a/client/src/i18n/translations/ru.ts
+++ b/client/src/i18n/translations/ru.ts
@@ -80,6 +80,7 @@ const ru: Record = {
'dashboard.sharedBy': 'Поделился {name}',
'dashboard.days': 'Дни',
'dashboard.places': 'Места',
+ 'dashboard.members': 'Попутчики',
'dashboard.archive': 'Архивировать',
'dashboard.restore': 'Восстановить',
'dashboard.archived': 'В архиве',
diff --git a/client/src/i18n/translations/zh.ts b/client/src/i18n/translations/zh.ts
index 2f6eade..4cc8cb8 100644
--- a/client/src/i18n/translations/zh.ts
+++ b/client/src/i18n/translations/zh.ts
@@ -80,6 +80,7 @@ const zh: Record = {
'dashboard.sharedBy': '由 {name} 分享',
'dashboard.days': '天',
'dashboard.places': '地点',
+ 'dashboard.members': '旅伴',
'dashboard.archive': '归档',
'dashboard.restore': '恢复',
'dashboard.archived': '已归档',
diff --git a/client/src/pages/DashboardPage.tsx b/client/src/pages/DashboardPage.tsx
index 6272fe8..c2db567 100644
--- a/client/src/pages/DashboardPage.tsx
+++ b/client/src/pages/DashboardPage.tsx
@@ -14,7 +14,7 @@ import ConfirmDialog from '../components/shared/ConfirmDialog'
import { useToast } from '../components/shared/Toast'
import {
Plus, Calendar, Trash2, Edit2, Map, ChevronDown, ChevronUp,
- Archive, ArchiveRestore, Clock, MapPin, Settings, X, ArrowRightLeft,
+ Archive, ArchiveRestore, Clock, MapPin, Settings, X, ArrowRightLeft, Users,
LayoutGrid, List,
} from 'lucide-react'
import { useCanDo } from '../store/permissionsStore'
@@ -31,6 +31,7 @@ interface DashboardTrip {
owner_username?: string
day_count?: number
place_count?: number
+ shared_count?: number
[key: string]: string | number | boolean | null | undefined
}
@@ -224,6 +225,9 @@ function SpotlightCard({ trip, onEdit, onDelete, onArchive, onClick, t, locale,
{trip.place_count || 0} {t('dashboard.places')}
+
+ {trip.shared_count+1 || 0} {t('dashboard.members')}
+
@@ -307,6 +311,7 @@ function TripCard({ trip, onEdit, onDelete, onArchive, onClick, t, locale }: Omi
+
{(onEdit || onArchive || onDelete) && (
@@ -406,6 +411,9 @@ function TripListItem({ trip, onEdit, onDelete, onArchive, onClick, t, locale }:
{trip.place_count || 0}
+
+ {trip.shared_count+1 || 0}
+
{/* Actions */}