import React, { useState, useCallback, useMemo } from "react"; import { View, Text, FlatList, TouchableOpacity, StyleSheet, RefreshControl, Modal, ScrollView, } from "react-native"; import { useNavigation, useFocusEffect } from "@react-navigation/native"; import type { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { Ionicons } from "@expo/vector-icons"; import { getMyCompletedOrders, getMyPenalties, getPublicSettings, getReferralBalance, getMyPointsRewards, claimMyReward, formatOrderDate, formatPrice, } from "../../api/api"; import type { PublicSettings, PointsPoolInfo, PointsRewardConfig, RewardItemConfig, } from "../../api/api"; import type { CompletedOrder, ClientStats, PenaltyInfo, } from "../../api/api_types"; import type { ClientStackParamList } from "../../navigation/types"; import StatusBadge from "../../components/StatusBadge"; import LoadingSpinner from "../../components/ui/LoadingSpinner"; import Card from "../../components/ui/Card"; import { useTheme } from "../../context/ThemeContext"; import { spacing, borderRadius, fontSize, fontWeight, shadows, } from "../../theme"; type Nav = NativeStackNavigationProp; export default function OrderHistoryScreen() { const navigation = useNavigation