import React, { useState, useEffect } from "react"; import { View, ScrollView, Pressable, TextInput, ActivityIndicator, RefreshControl, Image, } from "react-native"; import { useColorScheme } from "nativewind"; import { Text } from "@/components/ui/text"; import { Card } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { ScreenWrapper } from "@/components/ScreenWrapper"; import { StandardHeader } from "@/components/StandardHeader"; import { useSirouRouter } from "@sirou/react-native"; import { AppRoutes } from "@/lib/routes"; import { Stack } from "expo-router"; import { api } from "@/lib/api"; import { getPlaceholderColor } from "@/lib/colors"; import { EmptyState } from "@/components/EmptyState"; import { UserPlus, Search, Mail, ChevronRight, Plus } from "@/lib/icons"; export default function TeamScreen() { const nav = useSirouRouter(); const { colorScheme } = useColorScheme(); const isDark = colorScheme === "dark"; const [workers, setWorkers] = useState([]); const [loading, setLoading] = useState(true); const [refreshing, setRefreshing] = useState(false); const [searchQuery, setSearchQuery] = useState(""); const fetchWorkers = async () => { try { const response = await api.team.getAll(); const data = response.data || []; setWorkers(data); } catch (error) { console.error("[TeamScreen] Error fetching workers:", error); } finally { setLoading(false); setRefreshing(false); } }; useEffect(() => { fetchWorkers(); }, []); const onRefresh = () => { setRefreshing(true); fetchWorkers(); }; const filteredWorkers = workers.filter((worker) => { const name = `${worker.firstName} ${worker.lastName}`.toLowerCase(); const email = (worker.email || "").toLowerCase(); const query = searchQuery.toLowerCase(); return name.includes(query) || email.includes(query); }); return ( Workers ({filteredWorkers?.length || 0}) {loading ? ( ) : ( } contentContainerStyle={{ paddingBottom: 100 }} > {filteredWorkers.length > 0 ? ( filteredWorkers.map((worker) => ( nav.go("team/[id]/details", { id: worker.id })} > {worker.avatar ? ( ) : ( {worker.firstName?.[0]} {worker.lastName?.[0]} )} {worker.firstName} {worker.lastName} {worker.role?.replace("_", " ") || "WORKER"} {worker.email && ( {worker.email} )} )) ) : ( )} )} ); }