diff --git a/apps/rebreak-native/app/help/_layout.tsx b/apps/rebreak-native/app/help/_layout.tsx new file mode 100644 index 0000000..5152bd8 --- /dev/null +++ b/apps/rebreak-native/app/help/_layout.tsx @@ -0,0 +1,18 @@ +import { Stack } from 'expo-router'; +import { useTranslation } from 'react-i18next'; +import { useColors } from '../../lib/theme'; + +export default function HelpLayout() { + const { t } = useTranslation(); + const colors = useColors(); + + return ( + + ); +} diff --git a/apps/rebreak-native/app/help/about.tsx b/apps/rebreak-native/app/help/about.tsx new file mode 100644 index 0000000..b06bfc4 --- /dev/null +++ b/apps/rebreak-native/app/help/about.tsx @@ -0,0 +1,137 @@ +import { Linking, ScrollView, Text, TouchableOpacity, View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { Ionicons } from '@expo/vector-icons'; +import { useTranslation } from 'react-i18next'; +import { useColors } from '../../lib/theme'; +import { AppHeader } from '../../components/AppHeader'; + +export default function AboutScreen() { + const { t } = useTranslation(); + const colors = useColors(); + const insets = useSafeAreaInsets(); + + return ( + + + + + + + {t('help.about_headline')} + + + {t('help.about_body')} + + + + + {( + [ + { icon: 'shield-checkmark-outline', label: t('help.about_fact_diga') }, + { icon: 'server-outline', label: t('help.about_fact_servers') }, + { icon: 'lock-closed-outline', label: t('help.about_fact_privacy') }, + ] as { icon: React.ComponentProps['name']; label: string }[] + ).map((item, i, arr) => ( + + + + + + {item.label} + + + ))} + + + Linking.openURL('https://rebreak.org')} + activeOpacity={0.7} + style={{ marginTop: 20, alignItems: 'center' }} + > + + rebreak.org + + + + + ); +} diff --git a/apps/rebreak-native/app/help/contact.tsx b/apps/rebreak-native/app/help/contact.tsx new file mode 100644 index 0000000..07bdfa6 --- /dev/null +++ b/apps/rebreak-native/app/help/contact.tsx @@ -0,0 +1,107 @@ +import { Linking, ScrollView, Text, View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { useTranslation } from 'react-i18next'; +import { useColors } from '../../lib/theme'; +import { AppHeader } from '../../components/AppHeader'; +import { Button } from '../../components/Button'; + +export default function ContactScreen() { + const { t } = useTranslation(); + const colors = useColors(); + const insets = useSafeAreaInsets(); + + return ( + + + + + + + {t('help.contact_email_label')} + + + {t('help.contact_email_desc')} + +