import { View, Text, StyleSheet, ScrollView, Dimensions, ActivityIndicator, RefreshControl } from 'react-native'; import TabViewComponent, { TabItem } from '../global/tabView'; import NormalButton from '../global/normal_button'; import { SafeAreaView } from 'react-native-safe-area-context'; import RecentlyBookedScrollView from '../global/recentlyBookedScrollView'; import { router } from 'expo-router'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { chargeStationService } from '../../service/chargeStationService'; import { calculateDistance } from '../global/distanceCalculator'; import React from 'react'; import BookingTabViewComponent from '../global/bookingTabViewComponent'; interface BookingMenuPageProps {} const BookingMenuPageComponent: React.FC = () => { // console.log('BookingMenuPageComponent rendering'); const [refreshing, setRefreshing] = useState(false); const [refetchTrigger, setRefetchTrigger] = useState(0); const calculateResponsivePadding = useCallback(() => { const screenHeight = Dimensions.get('window').height; return screenHeight * 0.03; }, []); const calculateTabViewHeight = useCallback(() => { const screenHeight = Dimensions.get('window').height; if (screenHeight > 800) return 500; else if (screenHeight > 550) return 300; else return 150; }, []); const onRefresh = useCallback(() => { setRefreshing(true); setRefetchTrigger((prev) => prev + 1); // Simulate a delay to show the refresh indicator setTimeout(() => { setRefreshing(false); }, 1000); }, []); return ( } > 預約 + 新增預約} onPress={() => router.push('reservationLocationPage')} extendedStyle={{ padding: calculateResponsivePadding() }} /> {/* */} ); }; export default React.memo(BookingMenuPageComponent);