KI-AGENT: Stabilisiert mobilen Session-Start
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { Redirect } from 'expo-router';
|
||||
import { ActivityIndicator, StyleSheet, Text, View } from 'react-native';
|
||||
import { ActivityIndicator, Pressable, StyleSheet, Text, View } from 'react-native';
|
||||
|
||||
import { useAuth } from '@/src/providers/auth-provider';
|
||||
|
||||
export default function IndexScreen() {
|
||||
const { isBootstrapping, token, requiresTenantSelection } = useAuth();
|
||||
const { isBootstrapping, bootstrapError, token, requiresTenantSelection, retryBootstrap, resetLocalSession } = useAuth();
|
||||
|
||||
if (isBootstrapping) {
|
||||
return (
|
||||
@@ -15,6 +15,23 @@ export default function IndexScreen() {
|
||||
);
|
||||
}
|
||||
|
||||
if (bootstrapError) {
|
||||
return (
|
||||
<View style={styles.centered}>
|
||||
<Text style={styles.title}>Session konnte nicht gestartet werden</Text>
|
||||
<Text style={styles.copy}>{bootstrapError}</Text>
|
||||
<View style={styles.actions}>
|
||||
<Pressable style={styles.primaryButton} onPress={retryBootstrap}>
|
||||
<Text style={styles.primaryButtonText}>Erneut versuchen</Text>
|
||||
</Pressable>
|
||||
<Pressable style={styles.secondaryButton} onPress={resetLocalSession}>
|
||||
<Text style={styles.secondaryButtonText}>Lokale Session löschen</Text>
|
||||
</Pressable>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
if (!token) {
|
||||
return <Redirect href="/login" />;
|
||||
}
|
||||
@@ -37,5 +54,43 @@ const styles = StyleSheet.create({
|
||||
copy: {
|
||||
fontSize: 14,
|
||||
color: '#4b5563',
|
||||
textAlign: 'center',
|
||||
},
|
||||
title: {
|
||||
fontSize: 20,
|
||||
fontWeight: '700',
|
||||
color: '#111827',
|
||||
textAlign: 'center',
|
||||
},
|
||||
actions: {
|
||||
width: '100%',
|
||||
gap: 10,
|
||||
marginTop: 4,
|
||||
},
|
||||
primaryButton: {
|
||||
minHeight: 44,
|
||||
borderRadius: 10,
|
||||
backgroundColor: '#69c350',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
paddingHorizontal: 16,
|
||||
},
|
||||
primaryButtonText: {
|
||||
color: '#ffffff',
|
||||
fontWeight: '700',
|
||||
},
|
||||
secondaryButton: {
|
||||
minHeight: 44,
|
||||
borderRadius: 10,
|
||||
borderWidth: 1,
|
||||
borderColor: '#d1d5db',
|
||||
backgroundColor: '#ffffff',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
paddingHorizontal: 16,
|
||||
},
|
||||
secondaryButtonText: {
|
||||
color: '#374151',
|
||||
fontWeight: '600',
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user