diff --git a/resources/js/admin/mobile/BillingPage.tsx b/resources/js/admin/mobile/BillingPage.tsx index b8856a14..d8b63c31 100644 --- a/resources/js/admin/mobile/BillingPage.tsx +++ b/resources/js/admin/mobile/BillingPage.tsx @@ -980,8 +980,8 @@ function PackageCard({ backgroundColor={isActive ? accentSoft : undefined} gap="$2" > - - + + {pkg.package_name ?? t('mobileBilling.packageFallback', 'Package')} {label ? {label} : null} @@ -1262,8 +1262,8 @@ function AddonRow({ return ( - - + + {addon.label ?? addon.addon_key} {status.text} @@ -1271,11 +1271,11 @@ function AddonRow({ {!hideEventLink && eventName ? ( eventPath ? ( navigate(eventPath)}> - - + + {eventName} - + {t('mobileBilling.openEvent', 'Open event')} @@ -1316,8 +1316,8 @@ function EventAddonRow({ addon }: { addon: EventAddonSummary }) { return ( - - + + {addon.label ?? addon.key} {status.text} diff --git a/resources/js/admin/mobile/DashboardPage.tsx b/resources/js/admin/mobile/DashboardPage.tsx index 2bd3c463..1e8c539d 100644 --- a/resources/js/admin/mobile/DashboardPage.tsx +++ b/resources/js/admin/mobile/DashboardPage.tsx @@ -629,9 +629,9 @@ function LifecycleHero({ paddingHorizontal="$3" onPress={() => navigate(adminPath(nextStep.targetPath))} title={ - + - + {nextStep.label} @@ -644,8 +644,17 @@ function LifecycleHero({ ) : undefined } iconAfter={ - - {nextStep.ctaLabel} + + + {nextStep.ctaLabel} + } diff --git a/resources/js/admin/mobile/EventGuestNotificationsPage.tsx b/resources/js/admin/mobile/EventGuestNotificationsPage.tsx index dc08d853..d3f018eb 100644 --- a/resources/js/admin/mobile/EventGuestNotificationsPage.tsx +++ b/resources/js/admin/mobile/EventGuestNotificationsPage.tsx @@ -335,11 +335,11 @@ export default function MobileEventGuestNotificationsPage() { {history.map((item) => ( - - + + {item.title || t('guestMessages.history.untitled', 'Untitled')} - + {t(`guestMessages.status.${item.status}`, item.status)} @@ -353,8 +353,8 @@ export default function MobileEventGuestNotificationsPage() { {item.body ?? t('guestMessages.history.noBody', 'No body provided.')} - - + + {t(`guestMessages.type.${item.type}`, item.type)} {item.target_identifier ? ( @@ -376,7 +376,7 @@ export default function MobileEventGuestNotificationsPage() { )} - + {formatGuestMessageDate(item.created_at, locale)} diff --git a/resources/js/admin/mobile/EventMembersPage.tsx b/resources/js/admin/mobile/EventMembersPage.tsx index 176edad8..41f8140e 100644 --- a/resources/js/admin/mobile/EventMembersPage.tsx +++ b/resources/js/admin/mobile/EventMembersPage.tsx @@ -358,15 +358,15 @@ export default function MobileEventMembersPage() { const statusInfo = resolveStatus(member.status); return ( - - - + + + {member.name || member.email || t('events.members.fallbackName', 'Guest')} - + {member.email ?? ''} - + {statusInfo.label} diff --git a/resources/js/admin/mobile/EventRecapPage.tsx b/resources/js/admin/mobile/EventRecapPage.tsx index 4c13bdb7..f74019dd 100644 --- a/resources/js/admin/mobile/EventRecapPage.tsx +++ b/resources/js/admin/mobile/EventRecapPage.tsx @@ -200,60 +200,72 @@ export default function MobileEventRecapPage() { orientation="horizontal" flexDirection="column" > - + {t('events.recap.tabs.overview', 'Overview')} {t('events.recap.tabs.engagement', 'Engagement')} {t('events.recap.tabs.compliance', 'Compliance')} @@ -263,8 +275,8 @@ export default function MobileEventRecapPage() { - - + + {t('events.recap.completedTitle', 'Event abgeschlossen')} diff --git a/resources/js/admin/mobile/EventTasksPage.tsx b/resources/js/admin/mobile/EventTasksPage.tsx index a6e93be8..58d4f40a 100644 --- a/resources/js/admin/mobile/EventTasksPage.tsx +++ b/resources/js/admin/mobile/EventTasksPage.tsx @@ -1176,31 +1176,45 @@ export default function MobileEventTasksPage() { borderRadius={16} borderWidth={1} borderColor={border} - overflow="hidden" - gap="$0" + overflow="visible" + gap="$1" + flexWrap="wrap" + padding="$1" > {[ { value: 'assigned', label: t('events.tasks.tabs.tasks', 'Tasks') }, { value: 'library', label: t('events.tasks.tabs.library', 'Task Library') }, { value: 'emotions', label: t('events.tasks.tabs.emotions', 'Emotions') }, { value: 'collections', label: t('events.tasks.tabs.collections', 'Collections') }, - ].map((tab, index, arr) => { + ].map((tab) => { const isActive = activeTab === tab.value; return ( - + {tab.label} @@ -1232,6 +1246,7 @@ export default function MobileEventTasksPage() { - - {t('events.tasks.emotionFilterShort', 'Emotion')} - - - {emotionFilter - ? emotions.find((e) => String(e.id) === emotionFilter)?.name ?? t('events.tasks.customEmotion', 'Custom emotion') - : t('events.tasks.allEmotions', 'All')} - + + + {t('events.tasks.emotionFilterShort', 'Emotion')} + + + {emotionFilter + ? emotions.find((e) => String(e.id) === emotionFilter)?.name ?? t('events.tasks.customEmotion', 'Custom emotion') + : t('events.tasks.allEmotions', 'All')} + + diff --git a/resources/js/admin/mobile/EventsPage.tsx b/resources/js/admin/mobile/EventsPage.tsx index 8ddb4ffe..bc1dc7fb 100644 --- a/resources/js/admin/mobile/EventsPage.tsx +++ b/resources/js/admin/mobile/EventsPage.tsx @@ -449,11 +449,11 @@ function EventListItem({ const stats = buildEventListStats(event); return ( - - + + {renderName(event.name, t)} - + {statusLabel} {onEdit ? ( onEdit(event.slug)}> diff --git a/resources/js/admin/mobile/PackageShopPage.tsx b/resources/js/admin/mobile/PackageShopPage.tsx index 17ca70aa..4fe17e79 100644 --- a/resources/js/admin/mobile/PackageShopPage.tsx +++ b/resources/js/admin/mobile/PackageShopPage.tsx @@ -239,10 +239,10 @@ function PackageShopCard({ backgroundColor={isActive ? '$green1' : undefined} style={{ opacity: isSubdued ? 0.6 : 1 }} > - - - - + + + + {pkg.name} {isRecommended && {t('shop.badges.recommended', 'Recommended')}} @@ -255,12 +255,12 @@ function PackageShopCard({ {!isResellerCatalog && isActive ? {t('shop.badges.active', 'Active')} : null} - + {new Intl.NumberFormat(undefined, { style: 'currency', currency: 'EUR' }).format(pkg.price)} {statusLabel && ( - + • {statusLabel} )} diff --git a/resources/js/admin/mobile/ProfileAccountPage.tsx b/resources/js/admin/mobile/ProfileAccountPage.tsx index 31cb67fe..64125d31 100644 --- a/resources/js/admin/mobile/ProfileAccountPage.tsx +++ b/resources/js/admin/mobile/ProfileAccountPage.tsx @@ -583,41 +583,49 @@ export default function MobileProfileAccountPage() { orientation="horizontal" flexDirection="column" > - + {t('profile.tabs.account', 'Account')} {t('profile.tabs.branding', 'Standard-Branding')} diff --git a/resources/js/admin/mobile/SettingsPage.tsx b/resources/js/admin/mobile/SettingsPage.tsx index 51cf30aa..c6d31447 100644 --- a/resources/js/admin/mobile/SettingsPage.tsx +++ b/resources/js/admin/mobile/SettingsPage.tsx @@ -338,7 +338,7 @@ export default function MobileSettingsPage() { ) : ( - + {t('mobileSettings.deviceStatus.notifications.label', 'Notifications')} @@ -351,7 +351,7 @@ export default function MobileSettingsPage() { {permissionLabel(devicePermissions.notifications)} - + {t('mobileSettings.deviceStatus.camera.label', 'Camera')} @@ -364,7 +364,7 @@ export default function MobileSettingsPage() { {permissionLabel(devicePermissions.camera)} - + {t('mobileSettings.deviceStatus.storage.label', 'Offline storage')} @@ -377,7 +377,7 @@ export default function MobileSettingsPage() { {storageLabel(devicePermissions.storage)} - + {t('mobileSettings.deviceStatus.connection.label', 'Connection')} diff --git a/resources/js/admin/mobile/components/SetupChecklist.tsx b/resources/js/admin/mobile/components/SetupChecklist.tsx index faecc495..76a35f4f 100644 --- a/resources/js/admin/mobile/components/SetupChecklist.tsx +++ b/resources/js/admin/mobile/components/SetupChecklist.tsx @@ -39,19 +39,21 @@ export function SetupChecklist({ setCollapsed(!collapsed)}> - - + + {title} {isAllComplete ? ( ) : ( - {t('readiness.pending', 'Noch offen')} + + {t('readiness.pending', 'Noch offen')} + )} - + {completedCount}/{steps.length} @@ -89,7 +91,7 @@ export function SetupChecklist({ backgroundColor={isNext ? theme.surfaceMuted : 'transparent'} onPress={() => navigate(adminPath(step.targetPath))} title={ - + {step.isComplete ? ( ) : isNext ? ( @@ -102,6 +104,7 @@ export function SetupChecklist({ fontWeight={isNext ? '700' : '500'} color={step.isComplete ? theme.muted : theme.textStrong} textDecorationLine={step.isComplete ? 'line-through' : 'none'} + flexShrink={1} > {step.label}