import { Ionicons } from '@expo/vector-icons'; import { Image } from 'expo-image'; import { useFocusEffect, useRouter } from 'expo-router'; import { useCallback, useState } from 'react'; import { Pressable, RefreshControl, ScrollView, StyleSheet, Text, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { Button } from '@/components/ui'; import { TYPEN, assetsMitBild, type AssetMitBild, type AssetTyp } from '@/lib/assets'; import { useBildQuelle } from '@/lib/bildquelle'; import { reifegrad, type Ordner } from '@/lib/folders'; import { useSession } from '@/lib/session'; import { colors, radius, space, text } from '@/theme/tokens'; export default function ProfilScreen() { const router = useRouter(); const { brand, ordner, aktiverOrdner, setzeAktivenOrdner, ordnerNeuLaden, ausloggen } = useSession(); const [modelle, setModelle] = useState([]); const [laedt, setLaedt] = useState(false); const laden = useCallback(async () => { if (!brand) return; setLaedt(true); try { const [m] = await Promise.all([assetsMitBild(brand.$id), ordnerNeuLaden()]); setModelle(m); } finally { setLaedt(false); } }, [brand, ordnerNeuLaden]); // Nach dem Anlegen kommt man per router.back() zurück – ohne das hier stünde // die Liste noch auf dem alten Stand. useFocusEffect( useCallback(() => { void laden(); }, [laden]), ); return ( }> {brand?.label_name ?? 'Profil'} {/* Ordner stehen oben, nicht unter den Metriken – sie sind der Zugang zum Wissens-Scope (app-aufbau.md §4.5). */} router.push('/ordner/neu')} leer={ordner.length === 0 ? 'Noch kein Ordner. Der erste bestimmt, woraus generiert wird.' : undefined}> {ordner.map((o) => ( setzeAktivenOrdner(o)} aufOeffnen={() => router.push(`/ordner/${o.$id}`)} /> ))} router.push('/modell/neu')} leer={modelle.length === 0 ? 'Noch kein Modell. Personen, Produkte und Kulissen kommen hierher.' : undefined}> {TYPEN.map((t) => { const davon = modelle.filter((m) => m.typ === t.wert); if (!davon.length) return null; return ( {t.titel} {davon.map((m) => ( router.push({ pathname: '/modell/[id]', params: { id: m.$id } })} /> ))} ); })} {brand?.plan ?? 'trial'} · {brand?.$id}