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

@@ -10,6 +10,7 @@ import { MobileCard, CTAButton, PillBadge } from '../components/Primitives';
import { getPackages, getTenantPackagesOverview } from '../../api';
import { ADMIN_WELCOME_BASE_PATH, ADMIN_WELCOME_EVENT_PATH, ADMIN_WELCOME_PACKAGES_PATH, adminPath } from '../../constants';
import { getSelectedPackageId } from '../lib/onboardingSelection';
import { ADMIN_COLORS } from '../theme';
type SummaryPackage = {
id: number;
@@ -78,7 +79,7 @@ export default function WelcomeSummaryPage() {
>
{loading ? (
<MobileCard>
<Text fontSize="$sm" color="#6b7280">
<Text fontSize="$sm" color={ADMIN_COLORS.textMuted}>
{t('summary.state.loading', 'Checking available packages …')}
</Text>
</MobileCard>
@@ -87,7 +88,7 @@ export default function WelcomeSummaryPage() {
<Text fontSize="$sm" fontWeight="800">
{t('summary.state.missingTitle', 'No package selected')}
</Text>
<Text fontSize="$sm" color="#6b7280">
<Text fontSize="$sm" color={ADMIN_COLORS.textMuted}>
{t('summary.state.missingDescription', 'Select a package first or refresh if data changed.')}
</Text>
<CTAButton label={t('summary.footer.back', 'Back to package selection')} onPress={() => navigate(ADMIN_WELCOME_PACKAGES_PATH)} />
@@ -96,14 +97,21 @@ export default function WelcomeSummaryPage() {
<MobileCard space="$3">
<XStack alignItems="center" justifyContent="space-between">
<XStack alignItems="center" space="$2">
<XStack width={36} height={36} borderRadius={12} backgroundColor="#e0f2fe" alignItems="center" justifyContent="center">
<PackageIcon size={18} color="#0ea5e9" />
<XStack
width={36}
height={36}
borderRadius={12}
backgroundColor={ADMIN_COLORS.accentSoft}
alignItems="center"
justifyContent="center"
>
<PackageIcon size={18} color={ADMIN_COLORS.primary} />
</XStack>
<YStack>
<Text fontSize="$sm" fontWeight="800">
{resolvedPackage.name}
</Text>
<Text fontSize="$xs" color="#6b7280">
<Text fontSize="$xs" color={ADMIN_COLORS.textMuted}>
{resolvedPackage.active
? t('summary.details.section.statusActive', 'Already purchased')
: t('summary.details.section.statusInactive', 'Not purchased yet')}
@@ -139,8 +147,8 @@ export default function WelcomeSummaryPage() {
{resolvedPackage.active ? (
<XStack alignItems="center" space="$2">
<CheckCircle2 size={18} color="#22c55e" />
<Text fontSize="$sm" color="#16a34a" fontWeight="700">
<CheckCircle2 size={18} color={ADMIN_COLORS.success} />
<Text fontSize="$sm" color={ADMIN_COLORS.success} fontWeight="700">
{t('summary.details.section.statusActive', 'Already purchased')}
</Text>
</XStack>
@@ -162,10 +170,10 @@ export default function WelcomeSummaryPage() {
],
}) as string[]).map((item) => (
<XStack key={item} space="$2">
<Text fontSize="$xs" color="#6b7280">
<Text fontSize="$xs" color={ADMIN_COLORS.textMuted}>
</Text>
<Text fontSize="$sm" color="#6b7280">
<Text fontSize="$sm" color={ADMIN_COLORS.textMuted}>
{item}
</Text>
</XStack>
@@ -194,10 +202,10 @@ export default function WelcomeSummaryPage() {
function SummaryRow({ label, value }: { label: string; value: string }) {
return (
<XStack alignItems="center" justifyContent="space-between">
<Text fontSize="$sm" color="#111827">
<Text fontSize="$sm" color={ADMIN_COLORS.text}>
{label}
</Text>
<Text fontSize="$sm" color="#6b7280">
<Text fontSize="$sm" color={ADMIN_COLORS.textMuted}>
{value}
</Text>
</XStack>