added trip member count to dashboard
added translations for (generated with AI, so they could be wrong)
This commit is contained in:
@@ -85,6 +85,7 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
|
||||
'dashboard.sharedBy': 'شاركها {name}',
|
||||
'dashboard.days': 'الأيام',
|
||||
'dashboard.places': 'الأماكن',
|
||||
'dashboard.members': 'ال חברים',
|
||||
'dashboard.archive': 'أرشفة',
|
||||
'dashboard.restore': 'استعادة',
|
||||
'dashboard.archived': 'مؤرشفة',
|
||||
|
||||
@@ -80,6 +80,7 @@ const br: Record<string, string | { name: string; category: string }[]> = {
|
||||
'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',
|
||||
|
||||
@@ -81,6 +81,7 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'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',
|
||||
|
||||
@@ -80,6 +80,7 @@ const de: Record<string, string | { name: string; category: string }[]> = {
|
||||
'dashboard.sharedBy': 'Geteilt von {name}',
|
||||
'dashboard.days': 'Tage',
|
||||
'dashboard.places': 'Orte',
|
||||
'dashboard.members': 'Reise-Buddies',
|
||||
'dashboard.archive': 'Archivieren',
|
||||
'dashboard.restore': 'Wiederherstellen',
|
||||
'dashboard.archived': 'Archiviert',
|
||||
|
||||
@@ -80,6 +80,7 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'dashboard.sharedBy': 'Shared by {name}',
|
||||
'dashboard.days': 'Days',
|
||||
'dashboard.places': 'Places',
|
||||
'dashboard.members': 'Buddies',
|
||||
'dashboard.archive': 'Archive',
|
||||
'dashboard.restore': 'Restore',
|
||||
'dashboard.archived': 'Archived',
|
||||
|
||||
@@ -81,6 +81,7 @@ const es: Record<string, string> = {
|
||||
'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',
|
||||
|
||||
@@ -80,6 +80,7 @@ const fr: Record<string, string> = {
|
||||
'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é',
|
||||
|
||||
@@ -80,6 +80,7 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'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',
|
||||
|
||||
@@ -80,6 +80,7 @@ const it: Record<string, string | { name: string; category: string }[]> = {
|
||||
'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',
|
||||
|
||||
@@ -80,6 +80,7 @@ const nl: Record<string, string> = {
|
||||
'dashboard.sharedBy': 'Gedeeld door {name}',
|
||||
'dashboard.days': 'Dagen',
|
||||
'dashboard.places': 'Plaatsen',
|
||||
'dashboard.members': 'Reisgenoten',
|
||||
'dashboard.archive': 'Archiveren',
|
||||
'dashboard.restore': 'Herstellen',
|
||||
'dashboard.archived': 'Gearchiveerd',
|
||||
|
||||
@@ -80,6 +80,7 @@ const ru: Record<string, string> = {
|
||||
'dashboard.sharedBy': 'Поделился {name}',
|
||||
'dashboard.days': 'Дни',
|
||||
'dashboard.places': 'Места',
|
||||
'dashboard.members': 'Попутчики',
|
||||
'dashboard.archive': 'Архивировать',
|
||||
'dashboard.restore': 'Восстановить',
|
||||
'dashboard.archived': 'В архиве',
|
||||
|
||||
@@ -80,6 +80,7 @@ const zh: Record<string, string> = {
|
||||
'dashboard.sharedBy': '由 {name} 分享',
|
||||
'dashboard.days': '天',
|
||||
'dashboard.places': '地点',
|
||||
'dashboard.members': '旅伴',
|
||||
'dashboard.archive': '归档',
|
||||
'dashboard.restore': '恢复',
|
||||
'dashboard.archived': '已归档',
|
||||
|
||||
@@ -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,
|
||||
<div style={{ display: 'flex', alignItems: 'center', gap: 5, color: 'rgba(255,255,255,0.8)', fontSize: 13 }}>
|
||||
<MapPin size={13} /> {trip.place_count || 0} {t('dashboard.places')}
|
||||
</div>
|
||||
<div className="hidden md:flex" style={{ alignItems: 'center', gap: 5, color: 'rgba(255,255,255,0.8)', fontSize: 13 }}>
|
||||
<Users size={13} /> {trip.shared_count+1 || 0} {t('dashboard.members')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -307,6 +311,7 @@ function TripCard({ trip, onEdit, onDelete, onArchive, onClick, t, locale }: Omi
|
||||
<div style={{ display: 'flex', gap: 8, marginBottom: 10 }}>
|
||||
<Stat label={t('dashboard.days')} value={trip.day_count || 0} />
|
||||
<Stat label={t('dashboard.places')} value={trip.place_count || 0} />
|
||||
<Stat label={t('dashboard.members')} value={trip.shared_count+1 || 0} />
|
||||
</div>
|
||||
|
||||
{(onEdit || onArchive || onDelete) && (
|
||||
@@ -406,6 +411,9 @@ function TripListItem({ trip, onEdit, onDelete, onArchive, onClick, t, locale }:
|
||||
<div className="hidden md:flex" style={{ alignItems: 'center', gap: 4, fontSize: 12, color: 'var(--text-muted)' }}>
|
||||
<MapPin size={11} /> {trip.place_count || 0}
|
||||
</div>
|
||||
<div className="hidden md:flex" style={{ alignItems: 'center', gap: 4, fontSize: 12, color: 'var(--text-muted)' }}>
|
||||
<Users size={11} /> {trip.shared_count+1 || 0}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
Reference in New Issue
Block a user