import React, { useState, useMemo } from "react"; import { View, Text, ScrollView, useColorScheme, } from "react-native"; import { SafeAreaView } from "react-native-safe-area-context"; import SearchBar from "../components/SearchBar"; import CollapsibleCategory, { Category } from "../components/CollapsibleCategory"; import { ALL_CATEGORIES } from "@/data/mockData"; export default function AllFeed() { const [query, setQuery] = useState(""); const scheme = useColorScheme(); const dark = scheme === "dark"; const totalCount = ALL_CATEGORIES.reduce( (sum, cat) => sum + cat.items.length, 0 ); // Filter items within each category based on search query const filteredCategories = useMemo((): Category[] => { if (!query.trim()) return ALL_CATEGORIES; const lower = query.toLowerCase(); return ALL_CATEGORIES.map((cat) => ({ ...cat, items: cat.items.filter( (item) => item.title.toLowerCase().includes(lower) || item.author.toLowerCase().includes(lower) || item.tag.toLowerCase().includes(lower) || cat.label.toLowerCase().includes(lower) ), })).filter((cat) => cat.items.length > 0); }, [query]); return ( Discover {ALL_CATEGORIES.length} categories · {totalCount} articles {filteredCategories.length === 0 ? ( 🔍 No results for "{query}" Try searching by category name, author, or topic. ) : ( filteredCategories.map((cat, index) => ( )) )} ); }