import React, { useCallback, useState } from 'react';
import { View, Text, StyleSheet, FlatList, TouchableOpacity, ActivityIndicator, RefreshControl, SafeAreaView } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useNavigation, useFocusEffect } from '@react-navigation/native';
import { StatusBar } from 'expo-status-bar';
import apiService from '../../services/apiService';
import { COLORS } from '../../constants/colors';
import { useBaseEnums } from '../../contexts/BaseEnumsContext';
const CARD_BG = '#F1F9F1';
const CIRCLE_BG = '#A2E4A4';
const CardOrdersScreen = () => {
const navigation = useNavigation();
const [orders,setOrders] = useState([]);
const [loading,setLoading]=useState(true);
const [refreshing,setRefreshing]=useState(false);
const { getLabel } = useBaseEnums();
const fetchData = async()=>{
try{
const res = await apiService.getCardOrders();
if(res.success) setOrders(Array.isArray(res.data)?res.data:[]);
else console.warn(res.error);
}catch(e){ console.warn(e.message);} finally {setLoading(false); setRefreshing(false);} };
useFocusEffect(useCallback(()=>{ fetchData(); },[]));
const onRefresh = ()=>{ setRefreshing(true); fetchData(); };
const handlePress = (item)=>{ navigation.navigate('CardOrderDetails',{orderId:item.id}); };
const renderItem=({item})=>{
const created = item.created_at? new Date(item.created_at).toLocaleDateString():'';
return (
handlePress(item)}>
{item.id}
{item.unique_id}
Kart görnüşi: {getLabel('card_types',item.card_type_id)}
Tölenildi: {item.paid? 'Hawa':'Ýok'}
{item.status}
{created}
); };
if(loading) return ;
return (
navigation.goBack()} style={{paddingRight:12}}>
Täze kart sargytlary
i.id.toString()} renderItem={renderItem} refreshControl={} contentContainerStyle={orders.length===0 && styles.empty} ListEmptyComponent={Sargyt ýok} />
navigation.navigate('CreateCardOrder')}>
); };
const styles = StyleSheet.create({
container:{flex:1,backgroundColor:COLORS.backgroundSecondary},
header:{flexDirection:'row',alignItems:'center',paddingHorizontal:24,paddingVertical:16},
headerTitle:{fontSize:20,fontWeight:'bold',color:COLORS.textPrimary},
center:{flex:1,justifyContent:'center',alignItems:'center'},
card:{flexDirection:'row',backgroundColor:CARD_BG,marginHorizontal:24,marginTop:16,borderRadius:12,padding:16},
circle:{width:40,height:40,borderRadius:20,backgroundColor:CIRCLE_BG,alignItems:'center',justifyContent:'center',marginRight:16},
circleText:{color:COLORS.white,fontWeight:'600'},
content:{flex:1},
titleText:{fontWeight:'700',color:COLORS.textPrimary},
line:{fontSize:12,color:COLORS.textSecondary},
status:{fontSize:13,fontWeight:'600',marginTop:2},
date:{fontSize:11,color:COLORS.textSecondary},
fab:{position:'absolute',bottom:32,right:32,width:56,height:56,borderRadius:28,backgroundColor:COLORS.primary,alignItems:'center',justifyContent:'center',elevation:4},
empty:{flex:1,justifyContent:'center',alignItems:'center'},
emptyText:{color:COLORS.textSecondary,fontSize:16},
});
export default CardOrdersScreen;