weiterer fortschritt mit tamagui und dem neuen mobile event admin

This commit is contained in:
Codex Agent
2025-12-10 20:01:47 +01:00
parent 73e550ee87
commit 7b01a77083
26 changed files with 761 additions and 139 deletions

View File

@@ -5,13 +5,11 @@ import { Image as ImageIcon, RefreshCcw, Save } from 'lucide-react';
import { YStack, XStack } from '@tamagui/stacks';
import { SizableText as Text } from '@tamagui/text';
import { Pressable } from '@tamagui/react-native-web-lite';
import { MobileScaffold } from './components/Scaffold';
import { MobileShell } from './components/MobileShell';
import { MobileCard, CTAButton } from './components/Primitives';
import { BottomNav } from './components/BottomNav';
import { TenantEvent, getEvent, updateEvent, getTenantFonts, TenantFont } from '../api';
import { isAuthError } from '../auth/tokens';
import { getApiErrorMessage } from '../lib/apiError';
import { useMobileNav } from './hooks/useMobileNav';
import { MobileSheet } from './components/Sheet';
type BrandingForm = {
@@ -37,7 +35,6 @@ export default function MobileBrandingPage() {
const [loading, setLoading] = React.useState(true);
const [saving, setSaving] = React.useState(false);
const [error, setError] = React.useState<string | null>(null);
const { go } = useMobileNav(slug);
const [showFontsSheet, setShowFontsSheet] = React.useState(false);
const [fonts, setFonts] = React.useState<TenantFont[]>([]);
const [fontsLoading, setFontsLoading] = React.useState(false);
@@ -108,17 +105,15 @@ export default function MobileBrandingPage() {
}
return (
<MobileScaffold
<MobileShell
activeTab="home"
title={t('events.branding.title', 'Branding & Customization')}
onBack={() => navigate(-1)}
rightSlot={
headerActions={
<Pressable disabled={saving} onPress={() => handleSave()}>
<Save size={18} color="#007AFF" />
</Pressable>
}
footer={
<BottomNav active="home" onNavigate={go} />
}
>
{error ? (
<MobileCard>
@@ -280,7 +275,7 @@ export default function MobileBrandingPage() {
)}
</YStack>
</MobileSheet>
</MobileScaffold>
</MobileShell>
);
}