addVehicleSuccessfulPageComponent.tsx 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import {
  2. View,
  3. Text,
  4. ScrollView,
  5. Image,
  6. Dimensions,
  7. Pressable
  8. } from 'react-native';
  9. import { SafeAreaView } from 'react-native-safe-area-context';
  10. import NormalButton from '../global/normal_button';
  11. import { PreviousPageBlackSvg, TickLogoSvg } from '../global/SVG';
  12. import { router, useLocalSearchParams } from 'expo-router';
  13. import { useEffect, useState } from 'react';
  14. import { chargeStationService } from '../../service/chargeStationService';
  15. const AddVehicleSuccessfulPageComponent = () => {
  16. const { height: deviceHeight, width: deviceWidth } =
  17. Dimensions.get('window');
  18. const params = useLocalSearchParams();
  19. const selectedTypeID = params.selectedTypeID;
  20. const [vehicleName, setVehicleName] = useState('');
  21. console.log(selectedTypeID);
  22. useEffect(() => {
  23. const fetchData = async () => {
  24. try {
  25. const result = await chargeStationService.fetchCarBrand();
  26. console.log(result.data);
  27. const carType = result.data
  28. .flatMap((brand) => brand.car_types)
  29. .find((type) => type.id === selectedTypeID);
  30. console.log(carType.name);
  31. setVehicleName(carType.name);
  32. } catch (error) {
  33. console.log(error);
  34. }
  35. };
  36. fetchData();
  37. }, []);
  38. return (
  39. <SafeAreaView className="flex-1 bg-white">
  40. <ScrollView
  41. className="flex-1 mx-[5%]"
  42. showsVerticalScrollIndicator={false}
  43. >
  44. <View style={{ marginTop: 25, flex: 1 }}>
  45. <Pressable
  46. className="self-start"
  47. onPress={() => {
  48. if (router.canGoBack()) {
  49. router.back();
  50. } else {
  51. router.replace('/accountMainPage');
  52. }
  53. }}
  54. >
  55. <PreviousPageBlackSvg />
  56. </Pressable>
  57. <View className="flex-row items-center mt-6">
  58. <TickLogoSvg />
  59. <Text className="text-3xl pl-2">新增完成</Text>
  60. </View>
  61. <View className="items-center pt-4 justify-center">
  62. <View className="items-center ">
  63. <Image
  64. source={require('../../assets/car.png')}
  65. resizeMode="contain"
  66. style={{
  67. width: deviceWidth * 0.8,
  68. height: deviceHeight * 0.25
  69. }}
  70. />
  71. </View>
  72. <Text className="text-3xl font-light pb-4 text-center">
  73. {vehicleName}
  74. </Text>
  75. <Text className="text-lg font-light pb-4">
  76. 已加入我的車輛裡
  77. </Text>
  78. </View>
  79. <NormalButton
  80. title={
  81. <Text style={{ color: '#fff', fontSize: 20 }}>
  82. 返回首頁
  83. </Text>
  84. }
  85. onPress={() => {
  86. router.replace('mainPage');
  87. }}
  88. />
  89. </View>
  90. </ScrollView>
  91. </SafeAreaView>
  92. );
  93. };
  94. export default AddVehicleSuccessfulPageComponent;
  95. function useRoute() {
  96. throw new Error('Function not implemented.');
  97. }