neues Admin UI Layout eingeführt. Alle Tests auf den neusten Stand gebracht.

This commit is contained in:
Codex Agent
2025-12-30 10:24:06 +01:00
parent 902e78cae9
commit efe2f25b3e
85 changed files with 95235 additions and 19197 deletions

View File

@@ -5,7 +5,6 @@ import { LogOut, User, Settings, Shield, Globe, Moon } 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 { useTheme } from '@tamagui/core';
import { YGroup } from '@tamagui/group';
import { ListItem } from '@tamagui/list-item';
import { MobileShell } from './components/MobileShell';
@@ -17,18 +16,18 @@ import { adminPath } from '../constants';
import i18n from '../i18n';
import { useAppearance } from '@/hooks/use-appearance';
import { useBackNavigation } from './hooks/useBackNavigation';
import { useAdminTheme } from './theme';
export default function MobileProfilePage() {
const { user, logout } = useAuth();
const navigate = useNavigate();
const { t } = useTranslation('management');
const { appearance, updateAppearance } = useAppearance();
const theme = useTheme();
const textColor = String(theme.color?.val ?? '#111827');
const mutedText = String(theme.gray?.val ?? '#4b5563');
const borderColor = String(theme.borderColor?.val ?? '#e5e7eb');
const avatarBg = String(theme.surface?.val ?? '#e0f2fe');
const primary = String(theme.primary?.val ?? '#2563eb');
const { textStrong, muted, border, accentSoft, primary, subtle } = useAdminTheme();
const textColor = textStrong;
const mutedText = muted;
const borderColor = border;
const avatarBg = accentSoft;
const back = useBackNavigation(adminPath('/mobile/dashboard'));
const [name, setName] = React.useState(user?.name ?? t('events.members.roles.guest', 'Guest'));
@@ -96,7 +95,7 @@ export default function MobileProfilePage() {
{t('mobileProfile.account', 'Account & security')}
</Text>
}
iconAfter={<Settings size={18} color="#9ca3af" />}
iconAfter={<Settings size={18} color={subtle} />}
/>
</Pressable>
</YGroup.Item>
@@ -112,7 +111,7 @@ export default function MobileProfilePage() {
{t('billing.sections.packages.title', 'Packages & Billing')}
</Text>
}
iconAfter={<Settings size={18} color="#9ca3af" />}
iconAfter={<Settings size={18} color={subtle} />}
/>
</Pressable>
</YGroup.Item>
@@ -128,7 +127,7 @@ export default function MobileProfilePage() {
{t('billing.sections.invoices.title', 'Invoices & Payments')}
</Text>
}
iconAfter={<Settings size={18} color="#9ca3af" />}
iconAfter={<Settings size={18} color={subtle} />}
/>
</Pressable>
</YGroup.Item>
@@ -138,7 +137,7 @@ export default function MobileProfilePage() {
paddingHorizontal="$3"
title={
<XStack space="$2" alignItems="center">
<Globe size={16} color="#6b7280" />
<Globe size={16} color={muted} />
<Text fontSize="$sm" color={textColor}>
{t('mobileProfile.language', 'Language')}
</Text>
@@ -167,7 +166,7 @@ export default function MobileProfilePage() {
paddingHorizontal="$3"
title={
<XStack space="$2" alignItems="center">
<Moon size={16} color="#6b7280" />
<Moon size={16} color={muted} />
<Text fontSize="$sm" color={textColor}>
{t('mobileProfile.theme', 'Theme')}
</Text>