onboarding tracking is now wired, the tour can be replayed from Settings, install‑banner reset is included, and empty states in Tasks/Members/Guest Messages now have guided CTAs.

What changed:
  - Onboarding tracking: admin_app_opened on first authenticated dashboard load; event_created, branding_configured,
    and invite_created on their respective actions.
  - Tour replay: Settings now has an “Experience” section to replay the tour (clears tour seen flag and opens via ?tour=1).
  - Empty states: Tasks, Members, and Guest Messages now include richer copy + quick actions.
  - New helpers + copy: Tour storage helpers, new translations, and related UI wiring.
This commit is contained in:
Codex Agent
2025-12-28 18:59:12 +01:00
parent d5f038d098
commit 718c129a8d
16 changed files with 454 additions and 91 deletions

View File

@@ -382,11 +382,24 @@ export default function MobileEventTasksPage() {
<YStack space="$2">
<MobileCard space="$2">
<Text fontSize={13} fontWeight="700" color={text}>
{t('events.tasks.empty', 'Noch keine Aufgaben zugewiesen.')}
{t('events.tasks.emptyTitle', 'No tasks yet')}
</Text>
<Text fontSize={12} color={muted}>
{t('events.tasks.emptyHint', 'Lege jetzt Tasks an oder importiere ein Paket.')}
{t('events.tasks.emptyBody', 'Create tasks or import a pack for your event.')}
</Text>
<XStack space="$2">
<CTAButton
label={t('events.tasks.emptyActionTask', 'Add task')}
onPress={() => setShowTaskSheet(true)}
fullWidth={false}
/>
<CTAButton
label={t('events.tasks.emptyActionPack', 'Import pack')}
tone="ghost"
onPress={() => setShowCollectionSheet(true)}
fullWidth={false}
/>
</XStack>
</MobileCard>
<YStack borderWidth={1} borderColor={border} borderRadius="$4" overflow="hidden">
<Pressable onPress={() => setShowTaskSheet(true)}>