import React, { useState } from "react"; import { View, Text, ScrollView, TouchableOpacity, ActivityIndicator, useColorScheme, } from "react-native"; import { SafeAreaView } from "react-native-safe-area-context"; import { Ionicons } from "@expo/vector-icons"; import SearchBar from "../components/SearchBar"; import CollapsibleCategory from "../components/CollapsibleCategory"; const GROUPS = [ { id: "1-year", label: "Prva godina", groupName: "Прва година", icon: "book-outline" as const, color: "#3B7DD8", darkColor: "#5E9EF4" }, { id: "2-year", label: "Druga godina", groupName: "Друга година", icon: "book-outline" as const, color: "#2E9E6B", darkColor: "#4EC992" }, { id: "3-year", label: "Treća godina", groupName: "Трећа година", icon: "book-outline" as const, color: "#9B4FB8", darkColor: "#C47CE0" }, { id: "4-year", label: "Četvrta godina", groupName: "Четврта година", icon: "book-outline" as const, color: "#C4622D", darkColor: "#E07B45" }, { id: "2-cycle", label: "Drugi ciklus", groupName: "Други циклус", icon: "book-outline" as const, color: "#3B7DD8", darkColor: "#5E9EF4" }, { id: "3-cycle", label: "Treći ciklus", groupName: "Трећи циклус", icon: "book-outline" as const, color: "#2E9E6B", darkColor: "#4EC992" }, { id: "postgraduate", label: "Postdiplomski studij", groupName: "Постдипломски студиј", icon: "book-outline" as const, color: "#9B4FB8", darkColor: "#C47CE0" }, // Tbh need to fix something on the server side for some reason its grouping defence as third ciclus but ill fix it later if i feel like it for now idc //{ id: "defenses", label: "Odbrane zavrsšnih radova", groupName: "Одбране завршних радова", icon: "book-outline" as const, color: "#C4622D", darkColor: "#E07B45" }, { id: "defenses", label: "Odbrane završnih radova", groupName: "Трећи циклус", icon: "book-outline" as const, color: "#C4622D", darkColor: "#E07B45" }, ]; export default function AllFeed() { const dark = useColorScheme() === "dark"; const accent = dark ? "#E07B45" : "#C4622D"; const [query, setQuery] = useState(""); const [refreshKey, setRefreshKey] = useState(0); const [refreshing, setRefreshing] = useState(false); const visibleGroups = query.trim() ? GROUPS.filter((g) => g.label.toLowerCase().includes(query.toLowerCase())) : GROUPS; const handleRefresh = () => { setRefreshing(true); setRefreshKey((k) => k + 1); setTimeout(() => setRefreshing(false), 800); }; return ( {/* Header */} Discover {GROUPS.length} groups {/* Refresh button */} {refreshing ? : } {visibleGroups.length === 0 ? ( 🔍 No groups match "{query}" ) : ( visibleGroups.map((group, index) => ( )) )} ); }