import { View, Text, ScrollView, Image, useWindowDimensions, StyleSheet, Pressable, Platform, Linking } from 'react-native'; import React, { useEffect, useState } from 'react'; import { SceneMap, TabBar, TabView } from 'react-native-tab-view'; import NormalButton from '../global/normal_button'; import { router, useLocalSearchParams } from 'expo-router'; import { CheckMarkLogoSvg, DirectionLogoSvg, PreviousPageSvg } from '../global/SVG'; import { SafeAreaView } from 'react-native-safe-area-context'; import { chargeStationService } from '../../service/chargeStationService'; interface ChargingStationTabViewProps { titles: string[]; } const ChargingStationTabView: React.FC = ({ titles }) => { const layout = useWindowDimensions(); //tab 1 const FirstRoute = () => ( 這是一段有關充電站的說明 ); //tab 2 const SecondRoute = () => ( Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident ); 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: '#000000', height: 1 }} style={{ backgroundColor: 'white', elevation: 0, marginHorizontal: 15, borderBottomWidth: 0.5 }} /> ); return ( ); }; const ResultDetailPageComponent = () => { const params = useLocalSearchParams(); const chargeStationID = params.chargeStationID as string; const chargeStationName = params.chargeStationName as string; const chargeStationAddress = params.chargeStationAddress as string; const chargeStationLat = params.chargeStationLat as string; const chargeStationLng = params.chargeStationLng as string; const [price, setPrice] = useState(''); useEffect(() => { const fetchPrice = async () => { try { const price = await chargeStationService.fetchChargeStationPrice( chargeStationID ); setPrice(price); } catch (error) { console.error('Error fetching price:', error); } }; fetchPrice(); }, []); // console.log(chargeStationLat, chargeStationLng); const handleNavigationPress = () => { const latitude = chargeStationLat; const longitude = chargeStationLng; const scheme = Platform.select({ ios: 'maps:0,0?q=', android: 'geo:0,0?q=' }); const latLng = `${latitude},${longitude}`; const label = chargeStationName; const url = Platform.select({ ios: `${scheme}${label}@${latLng}`, android: `${scheme}${latLng}(${label})` }); if (url) { Linking.openURL(url); } }; return ( { if (router.canGoBack()) { router.back(); } else { router.replace('./'); } }} > {chargeStationName} {chargeStationAddress} 路線 } onPress={handleNavigationPress} extendedStyle={{ backgroundColor: '#E3F2F8', borderRadius: 61, paddingHorizontal: 20, paddingVertical: 6 }} /> Walk-In 400m + 新增預約 } // onPress={() => console.log('ab')} onPress={() => // router.push('makingBookingPage') router.push({ pathname: 'makingBookingPage', params: { chargeStationID: chargeStationID, chargeStationAddress: chargeStationAddress, chargeStationName: chargeStationName, chargeStationLat: chargeStationLat, chargeStationLng: chargeStationLng } }) } /> 收費 $20 每15分鐘 ${price} 每度電 充電站資訊 ); }; export default ResultDetailPageComponent; const styles = StyleSheet.create({ text: { fontWeight: 300, color: '#000000' } });