generated from knso/webklar-preview-template
- Theme: warmer Papier-Hintergrund (#FAF7F0) wie die Webseite, Inhalte als weiße Karten mit dezentem Schatten + warmem Rand; Marker-Gelb als Akzentfarbe für die Kernaussage - Home: iOS-Großtitel (kollabiert beim Scrollen), Hero-Button mit Schatten, Kachel-Navigation statt halbbreiter Text-Buttons (behebt Umbruch "Einstellunge/n"), Abschnitts-Label, Brief-Karten mit Ampel-Farbstreifen links, freundlicher Leerzustand - Analyse: Kernaussage als Textmarker-Karte (Markenzeichen), Frist/ Termin-Karte in Ampel-Tönung mit Farbstreifen, einheitliche Karten - Ampel-Banner: Streifen-Look statt Vollrahmen - Layout-Fix: Home als FlatList-Wurzel mit automatischem Inset (vorher verdeckte der große Titel die Kopf-Buttons) Barrierefreiheit unverändert: Schriftgrößen, Touch-Targets, Kontraste. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
67 lines
2.8 KiB
TypeScript
67 lines
2.8 KiB
TypeScript
/**
|
|
* BehördenKlar — Behördenbriefe verstehen, übersetzen, beantworten.
|
|
* Einstiegspunkt: Navigation + Initialisierung (Archiv, Benachrichtigungen).
|
|
*/
|
|
import React, { useEffect } from 'react';
|
|
import { StatusBar } from 'expo-status-bar';
|
|
import { NavigationContainer } from '@react-navigation/native';
|
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
import { RootStackParamList } from './src/types';
|
|
import { useAppStore } from './src/store/useAppStore';
|
|
import { initialisiereBenachrichtigungen } from './src/services/erinnerungen';
|
|
import { AppSchutz } from './src/components/AppSchutz';
|
|
import { farben, schrift } from './src/theme';
|
|
import { HomeScreen } from './src/screens/HomeScreen';
|
|
import { ConsentScreen } from './src/screens/ConsentScreen';
|
|
import { ScanScreen } from './src/screens/ScanScreen';
|
|
import { AnalyseScreen } from './src/screens/AnalyseScreen';
|
|
import { AntwortScreen } from './src/screens/AntwortScreen';
|
|
import { GlossarScreen } from './src/screens/GlossarScreen';
|
|
import { EinstellungenScreen } from './src/screens/EinstellungenScreen';
|
|
|
|
const Stack = createNativeStackNavigator<RootStackParamList>();
|
|
|
|
export default function App() {
|
|
const initialisiere = useAppStore((s) => s.initialisiere);
|
|
|
|
useEffect(() => {
|
|
initialisiereBenachrichtigungen();
|
|
initialisiere();
|
|
}, [initialisiere]);
|
|
|
|
return (
|
|
<AppSchutz>
|
|
<NavigationContainer>
|
|
<StatusBar style="dark" />
|
|
<Stack.Navigator
|
|
screenOptions={{
|
|
headerStyle: { backgroundColor: farben.hintergrund },
|
|
headerShadowVisible: false,
|
|
headerTintColor: farben.primaer,
|
|
headerTitleStyle: { fontSize: schrift.gross, fontWeight: '700' },
|
|
headerBackTitle: 'Zurück',
|
|
contentStyle: { backgroundColor: farben.hintergrund },
|
|
}}
|
|
>
|
|
<Stack.Screen
|
|
name="Home"
|
|
component={HomeScreen}
|
|
options={{
|
|
title: 'BehördenKlar',
|
|
headerLargeTitle: true,
|
|
headerLargeTitleStyle: { color: farben.primaer, fontWeight: '800' },
|
|
headerLargeStyle: { backgroundColor: farben.hintergrund },
|
|
}}
|
|
/>
|
|
<Stack.Screen name="Consent" component={ConsentScreen} options={{ title: 'Datenschutz' }} />
|
|
<Stack.Screen name="Scan" component={ScanScreen} options={{ title: 'Brief scannen' }} />
|
|
<Stack.Screen name="Analyse" component={AnalyseScreen} options={{ title: 'Ihr Brief erklärt' }} />
|
|
<Stack.Screen name="Antwort" component={AntwortScreen} options={{ title: 'Antwort erstellen' }} />
|
|
<Stack.Screen name="Glossar" component={GlossarScreen} options={{ title: 'Behörden-Glossar' }} />
|
|
<Stack.Screen name="Einstellungen" component={EinstellungenScreen} options={{ title: 'Einstellungen' }} />
|
|
</Stack.Navigator>
|
|
</NavigationContainer>
|
|
</AppSchutz>
|
|
);
|
|
}
|