import { View, Text, FlatList, TouchableOpacity, RefreshControl, ScrollView, } from 'react-native' import { SafeAreaView } from 'react-native-safe-area-context' import { useState } from 'react' import { trpc } from '@/lib/trpc' import { useRouter } from 'expo-router' import { NewsCard } from '@/components/news/NewsCard' import { EmptyState } from '@/components/ui/EmptyState' import { LoadingSpinner } from '@/components/ui/LoadingSpinner' import { NEWS_KATEGORIE_LABELS } from '@innungsapp/shared' const FILTER_OPTIONS = [ { value: undefined, label: 'Alle' }, { value: 'Wichtig', label: 'Wichtig' }, { value: 'Pruefung', label: 'Prüfung' }, { value: 'Foerderung', label: 'Förderung' }, { value: 'Veranstaltung', label: 'Veranstaltung' }, ] export default function NewsScreen() { const router = useRouter() const [kategorie, setKategorie] = useState(undefined) const { data, isLoading, refetch, isRefetching } = trpc.news.list.useQuery({ kategorie: kategorie as never, }) return ( {/* Header */} News {/* Kategorie Filter */} {FILTER_OPTIONS.map((opt) => ( setKategorie(opt.value)} className={`px-4 py-1.5 rounded-full border ${ kategorie === opt.value ? 'bg-brand-500 border-brand-500' : 'bg-white border-gray-200' }`} > {opt.label} ))} {/* List */} {isLoading ? ( ) : ( item.id} contentContainerStyle={{ padding: 12, gap: 8 }} refreshControl={ } renderItem={({ item }) => ( router.push(`/(app)/news/${item.id}`)} /> )} ListEmptyComponent={ } /> )} ) }