import { router, useLocalSearchParams } from "expo-router"; import { useMemo, useState } from "react"; import { FlatList, Pressable, View } from "react-native"; import { useTranslation } from "react-i18next"; import { Chip, ChipRow } from "@/components/ui/Chip"; import { EmptyState } from "@/components/ui/EmptyState"; import { AppHeader } from "@/components/ui/Header"; import { ProductRow } from "@/components/ui/ProductCard"; import { Screen } from "@/components/ui/Screen"; import { SearchField } from "@/components/ui/SearchField"; import { Text } from "@/components/ui/Text"; import { products, searchProducts } from "@/lib/data/products"; import { categories, routes } from "@/lib/routes"; import { colors, gutter } from "@/lib/theme"; const recent = ["Panadol", "Metformin", "Vitamin C", "Cough syrup", "Glucose meter"]; export default function SearchScreen() { const { t } = useTranslation(); const params = useLocalSearchParams<{ q?: string }>(); const [q, setQ] = useState(params.q ?? ""); const results = useMemo(() => (q.trim() ? searchProducts(q) : []), [q]); return ( setQ("")} autoFocus placeholder={t("common.search")} /> {!q.trim() ? ( Recent searches {recent.map((term) => ( setQ(term)} style={{ flexDirection: "row", alignItems: "center", gap: 10 }} > {term} ))} Browse by category {categories.map((c) => ( router.push({ pathname: routes.shop, params: { category: c.id } }) } /> ))} Popular right now {products .filter((p) => p.badge === "bestseller") .slice(0, 4) .map((p) => ( ))} ) : ( i.id} contentContainerStyle={{ paddingHorizontal: gutter, paddingTop: 16, paddingBottom: 40, gap: 10, }} ListEmptyComponent={ } ListHeaderComponent={ {results.length} result{results.length === 1 ? "" : "s"} } renderItem={({ item }) => } /> )} ); }