import { Ionicons } from '@expo/vector-icons'; import { useRouter } from 'expo-router'; import { Pressable, StyleSheet, Text, View } from 'react-native'; import { Screen } from '@/components/screen'; import { useSession } from '@/lib/session'; import { colors, radius, space, text } from '@/theme/tokens'; /** * Wird in E6 zum Popover über der Tab-Leiste. Bis dahin dieselbe Auswahl als * Screen – die drei Abläufe sind unterschiedlich lang, keiner darf der * Standard werden (app-aufbau.md §3). */ export default function ErstellenScreen() { const router = useRouter(); const { aktiverOrdner } = useSession(); return ( {aktiverOrdner ? ( Aktiver Ordner: {aktiverOrdner.name} ) : ( Noch kein Ordner gewählt – im Profil einen anlegen. )} router.push('/erstellen/post')} /> router.push('/modell/neu')} /> ); } function Eintrag({ icon, titel, text: beschreibung, aufDruck, gesperrt, }: { icon: keyof typeof Ionicons.glyphMap; titel: string; text: string; aufDruck?: () => void; gesperrt?: boolean; }) { return ( [s.zeile, gesperrt ? s.aus : null, pressed && !gesperrt ? s.gedrueckt : null]}> {titel} {beschreibung} {!gesperrt ? : null} ); } const s = StyleSheet.create({ scope: { ...text.label, color: colors.mut }, scopeName: { color: colors.txt, fontWeight: '700' }, zeile: { flexDirection: 'row', alignItems: 'center', gap: space.lg, backgroundColor: colors.surface, borderColor: colors.border, borderWidth: StyleSheet.hairlineWidth, borderRadius: radius.md, padding: space.lg, }, aus: { opacity: 0.45 }, gedrueckt: { opacity: 0.8 }, icon: { width: 38, height: 38, borderRadius: radius.sm, backgroundColor: colors.surface2, alignItems: 'center', justifyContent: 'center', }, zeileText: { flex: 1, gap: 2 }, zeileTitel: { ...text.body, fontWeight: '600', color: colors.txt }, zeileUnter: { ...text.label, color: colors.mut, lineHeight: 18 }, });