import Svg, { Path, Rect } from 'react-native-svg'; import * as React from 'react'; import { View, Text, useWindowDimensions, StyleSheet, Image, ImageSourcePropType, Pressable } from 'react-native'; import { TabView, SceneMap, TabBar } from 'react-native-tab-view'; import { FlashList } from '@shopify/flash-list'; import { SafeAreaView } from 'react-native-safe-area-context'; import { router } from 'expo-router'; import { CheckMarkLogoSvg, CrossLogoSvg } from '../global/SVG'; interface TabItem { imgURL: ImageSourcePropType; date: string; time: string; chargeStationName: string; chargeStationAddress: string; distance: string; } interface TabViewComponentProps { titles: string[]; tabItems: TabItem[]; } const dummyTabItems: TabItem[] = [ { imgURL: require('../../assets/dummyStationPicture.png'), date: '今天', time: '16:30', chargeStationName: '上環街市充電站', chargeStationAddress: '香港上環皇后大道中345號', distance: '400米' }, { imgURL: require('../../assets/dummyStationPicture2.png'), date: '3月15', time: '17:45', chargeStationName: '中環IFC充電站', chargeStationAddress: '香港中環皇后大道中999號', distance: '680米' }, { imgURL: require('../../assets/dummyStationPicture2.png'), date: '4月20', time: '12:30', chargeStationName: '中環IFC充電站', chargeStationAddress: '香港中環皇后大道中999號', distance: '680米' }, { imgURL: require('../../assets/dummyStationPicture.png'), date: '今天', time: '16:30', chargeStationName: '上環街市充電站', chargeStationAddress: '香港上環皇后大道中345號', distance: '400米' }, { imgURL: require('../../assets/dummyStationPicture.png'), date: '今天', time: '16:30', chargeStationName: '上環街市充電站', chargeStationAddress: '香港上環皇后大道中345號', distance: '400米' } ]; const LocationTabComponent: React.FC = ({ titles, tabItems }) => { const layout = useWindowDimensions(); const FirstRoute = () => ( { return ( console.log('clicked')} onPress={() => router.push('resultDetailPage')} style={({ pressed }) => [ styles.container, { backgroundColor: pressed ? '#e7f2f8' : '#ffffff' } ]} > {item.chargeStationName} {item.chargeStationAddress} Walk-in {item.distance} ); }} estimatedItemSize={10} /> ); //tab 2 const SecondRoute = () => ( { return ( console.log('clicked')} onPress={() => router.push('resultDetailPage')} style={({ pressed }) => [ styles.container, { backgroundColor: pressed ? '#e7f2f8' : '#ffffff' } ]} > {item.chargeStationName} {item.chargeStationAddress} Walk-in {item.distance} ); }} estimatedItemSize={10} /> ); const renderScene = SceneMap({ firstRoute: FirstRoute, secondRoute: SecondRoute }); const [routes] = React.useState([ { key: 'firstRoute', title: titles[0] }, { key: 'secondRoute', title: titles[1] } ]); const [index, setIndex] = React.useState(0); const renderTabBar = (props: any) => ( ( {route.title} )} indicatorStyle={{ backgroundColor: '#025c72' }} style={{ backgroundColor: 'white', borderColor: '#DBE4E8', elevation: 0, borderBottomWidth: 0.5 }} /> ); return ( ); }; const styles = StyleSheet.create({ container: { flexDirection: 'row' }, image: { width: 100, height: 100, marginTop: 15, marginRight: 15, borderRadius: 10 }, textContainer: { flexDirection: 'column', gap: 8, marginTop: 22 } }); const ReservationLocationPage = () => { return ( { if (router.canGoBack()) { router.back(); } else { router.replace('/'); } router.back(); }} > 預約地點 router.push('searchPage')}> 搜尋充電站或地區.. ); }; export default ReservationLocationPage;