Navigation now feels more “app‑like” with
stateful tabs and reliable back behavior, and a full onboarding flow is wired in with conditional package selection
(skips when an active package exists).
What changed
- Added per‑tab history + back navigation fallback to make tab switching/Back feel native (resources/js/admin/mobile/
lib/tabHistory.ts, resources/js/admin/mobile/hooks/useBackNavigation.ts, resources/js/admin/mobile/hooks/
useMobileNav.ts, resources/js/admin/mobile/components/MobileShell.tsx + updates across mobile pages).
- Implemented onboarding flow pages + shared shell, and wired new routes/prefetch (resources/js/admin/mobile/welcome/
WelcomeLandingPage.tsx, resources/js/admin/mobile/welcome/WelcomePackagesPage.tsx, resources/js/admin/mobile/
welcome/WelcomeSummaryPage.tsx, resources/js/admin/mobile/welcome/WelcomeEventPage.tsx, resources/js/admin/mobile/
components/OnboardingShell.tsx, resources/js/admin/router.tsx, resources/js/admin/mobile/prefetch.ts).
- Conditional package step: packages page redirects to event setup if activePackage exists; selection stored locally
for summary (resources/js/admin/mobile/lib/onboardingSelection.ts, resources/js/admin/mobile/welcome/
WelcomePackagesPage.tsx).
- Added a “Start welcome journey” CTA in the empty dashboard state (resources/js/admin/mobile/DashboardPage.tsx).
- Added translations for onboarding shell + selected package + dashboard CTA (resources/js/admin/i18n/locales/en/
onboarding.json, resources/js/admin/i18n/locales/de/onboarding.json, resources/js/admin/i18n/locales/en/
management.json, resources/js/admin/i18n/locales/de/management.json).
- Tests for new helpers/hooks (resources/js/admin/mobile/lib/tabHistory.test.ts, resources/js/admin/mobile/lib/
onboardingSelection.test.ts, resources/js/admin/mobile/hooks/useBackNavigation.test.tsx).
This commit is contained in:
@@ -1920,6 +1920,7 @@
|
||||
"emptyTitle": "Willkommen! Lass uns dein erstes Event starten",
|
||||
"emptyBody": "Drucke einen QR, sammle Uploads und moderiere in Minuten.",
|
||||
"ctaCreate": "Event erstellen",
|
||||
"ctaWelcome": "Welcome-Guide starten",
|
||||
"emptyChecklistTitle": "Schnelle Schritte bis live",
|
||||
"emptyChecklistProgress": "{{done}}/{{total}} Schritte",
|
||||
"emptyStepDetails": "Name & Datum ergänzen",
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
"eyebrow": "Fotospiel Kunden-Admin",
|
||||
"title": "Willkommen im Event-Erlebnisstudio",
|
||||
"subtitle": "Starte mit einer inspirierten Einführung, sichere dir dein Event-Paket und kreiere die perfekte Gästegalerie – alles optimiert für mobile Hosts.",
|
||||
"back": "Zurück",
|
||||
"skip": "Überspringen",
|
||||
"alreadyFamiliar": "Schon vertraut mit Fotospiel?",
|
||||
"jumpToDashboard": "Direkt zum Dashboard"
|
||||
},
|
||||
@@ -93,6 +95,7 @@
|
||||
"description": "Sofort einsatzbereit für dein nächstes Event.",
|
||||
"descriptionWithPhotos": "Bis zu {{count}} Fotos inklusive – perfekt für lebendige Reportagen.",
|
||||
"active": "Aktives Paket",
|
||||
"selected": "Ausgewählt",
|
||||
"select": "Paket wählen",
|
||||
"onRequest": "Auf Anfrage",
|
||||
"purchased": "Bereits gekauft am {{date}}",
|
||||
|
||||
@@ -1940,6 +1940,7 @@
|
||||
"emptyTitle": "Welcome! Let's launch your first event",
|
||||
"emptyBody": "Print a QR, collect uploads, and start moderating in minutes.",
|
||||
"ctaCreate": "Create event",
|
||||
"ctaWelcome": "Start welcome journey",
|
||||
"emptyChecklistTitle": "Quick steps to go live",
|
||||
"emptyChecklistProgress": "{{done}}/{{total}} steps",
|
||||
"emptyStepDetails": "Add name & date",
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
"eyebrow": "Fotospiel Customer Admin",
|
||||
"title": "Welcome to your event studio",
|
||||
"subtitle": "Begin with an inspired introduction, secure your package, and craft the perfect guest gallery – all optimised for mobile hosts.",
|
||||
"back": "Back",
|
||||
"skip": "Skip",
|
||||
"alreadyFamiliar": "Already familiar with Fotospiel?",
|
||||
"jumpToDashboard": "Jump to dashboard"
|
||||
},
|
||||
@@ -93,6 +95,7 @@
|
||||
"description": "Ready for your next event right away.",
|
||||
"descriptionWithPhotos": "Up to {{count}} photos included – perfect for vibrant storytelling.",
|
||||
"active": "Active package",
|
||||
"selected": "Selected",
|
||||
"select": "Select package",
|
||||
"onRequest": "On request",
|
||||
"purchased": "Purchased on {{date}}",
|
||||
|
||||
Reference in New Issue
Block a user