import React, { useState, useEffect, useCallback, useMemo } from "react"; import { View, Text, StyleSheet, FlatList, TouchableOpacity, RefreshControl, ScrollView, } from "react-native"; import { Ionicons } from "@expo/vector-icons"; import { useNavigation } from "@react-navigation/native"; import type { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { spacing, fontSize, borderRadius } from "../../theme"; import { useTheme } from "../../context/ThemeContext"; import { getAllCommands, getAvailableDeliveryPersons, assignDeliveryPerson, updateCommandStatus, getCommandItems, notifyClientToDescend, confirmReceptionAdmin, deleteCommand, deleteCommandItem, } from "../../api/api_admin"; import type { CommandResponse } from "../../api/types"; import type { AdminStackParamList } from "../../navigation/types"; import StatusBadge from "../../components/StatusBadge"; import LoadingSpinner from "../../components/ui/LoadingSpinner"; import Modal from "../../components/ui/Modal"; import Card from "../../components/ui/Card"; import AlertModal from "../../components/ui/AlertModal"; import { useAlert } from "../../hooks/useAlert"; type Nav = NativeStackNavigationProp; const STATUS_FILTERS = [ "all", "pending", "assigned", "en_route", "arrived", "livre", "approved", "cancelled", ]; export default function OrdersScreen() { const { colors } = useTheme(); const navigation = useNavigation