generated from knso/webklar-preview-template
- theme.ts nimmt die Werte der Webseite (--papier, --tinte, --amtsblau, --marker, --stempelrot) statt Gold/Bronze; neue Bausteine schriftart (Georgia / Courier), ecke, kartenSchatten, formularRahmen, etikett - alle Texte in Georgia, Versal-Etiketten in Schreibmaschinenschrift (grau wie "BETREFF"), Karten als Papierblaetter mit feiner Linie + flachem Schatten - Knoepfe wie .cta: Amtsblau bzw. weisses Blatt, Tinten-Rahmen, harter Versatz-Schatten, beim Druecken rutscht der Knopf in den Schatten - Startseite: Briefkopf "BehoerdenKlar by Webklar" mit Tinten-Linie, Textmarker auf "Fristen", dringendste Frist als Formular - Tab-Leiste: Papier mit Tinten-Linie, Scan-Knopf mit hartem Schatten Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
/**
|
|
* Datenschutz-Einwilligung — MUSS vor dem ersten Scan bestätigt werden.
|
|
* Erklärt klar, dass der Briefinhalt zur KI-Analyse gesendet wird.
|
|
*/
|
|
import React from 'react';
|
|
import { ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
import { NativeStackScreenProps } from '@react-navigation/native-stack';
|
|
import { RootStackParamList } from '../types';
|
|
import { speichereConsent } from '../services/storage';
|
|
import { GrossButton } from '../components/GrossButton';
|
|
import { farben, schrift, abstand, schriftart, ecke, kartenSchatten } from '../theme';
|
|
|
|
type Props = NativeStackScreenProps<RootStackParamList, 'Consent'>;
|
|
|
|
export function ConsentScreen({ navigation }: Props) {
|
|
const einverstanden = async () => {
|
|
await speichereConsent();
|
|
navigation.replace('Scan');
|
|
};
|
|
|
|
return (
|
|
<ScrollView style={styles.container} contentContainerStyle={styles.inhalt}>
|
|
<Text style={styles.titel}>Bevor es losgeht</Text>
|
|
|
|
<View style={styles.karte}>
|
|
<Text style={styles.punkt}>
|
|
📤 Wenn Sie einen Brief scannen, wird das Foto zur Analyse an den
|
|
KI-Dienst von Anthropic (USA) gesendet.
|
|
</Text>
|
|
<Text style={styles.punkt}>
|
|
🔒 Behördenbriefe enthalten sehr persönliche Daten (Name, Adresse,
|
|
Aktenzeichen, finanzielle Angaben). Senden Sie nur Briefe, deren
|
|
Analyse Sie wirklich möchten.
|
|
</Text>
|
|
<Text style={styles.punkt}>
|
|
📱 Die Analyse-Ergebnisse werden nur auf Ihrem Gerät gespeichert —
|
|
nicht auf unseren Servern.
|
|
</Text>
|
|
<Text style={styles.punkt}>
|
|
🗑️ Sie können in den Einstellungen jederzeit alle Daten vollständig
|
|
löschen.
|
|
</Text>
|
|
<Text style={styles.punkt}>
|
|
⚖️ Die App gibt keine Rechtsberatung. Bei wichtigen Entscheidungen
|
|
(z. B. Widerspruch) fragen Sie eine Beratungsstelle oder einen Anwalt.
|
|
</Text>
|
|
</View>
|
|
|
|
<GrossButton titel="Ich bin einverstanden" onPress={einverstanden} />
|
|
<View style={{ height: abstand.s }} />
|
|
<GrossButton
|
|
titel="Abbrechen"
|
|
variante="sekundaer"
|
|
onPress={() => navigation.goBack()}
|
|
/>
|
|
</ScrollView>
|
|
);
|
|
}
|
|
|
|
const styles = StyleSheet.create({
|
|
container: { flex: 1, backgroundColor: farben.hintergrund },
|
|
inhalt: { padding: abstand.l },
|
|
titel: { fontFamily: schriftart.serif,
|
|
fontSize: schrift.titel,
|
|
fontWeight: '700',
|
|
color: farben.text,
|
|
marginBottom: abstand.l,
|
|
},
|
|
karte: { ...kartenSchatten,
|
|
backgroundColor: farben.flaeche,
|
|
borderRadius: ecke,
|
|
padding: abstand.m,
|
|
marginBottom: abstand.xl,
|
|
gap: abstand.m,
|
|
},
|
|
punkt: { fontFamily: schriftart.serif, fontSize: schrift.basis, color: farben.text, lineHeight: 27 },
|
|
});
|