---
# System prepended metadata

title: Untitled

---

#tripDetails

```
import React, {useEffect, useState} from 'react';
import {
  View,
  Text,
  TouchableOpacity,
  ScrollView,
  Dimensions,
} from 'react-native';
import Icon from 'react-native-vector-icons/Entypo';
import MapView, {Marker} from 'react-native-maps';
import MapViewDirections from 'react-native-maps-directions';
import firestore from '@react-native-firebase/firestore';
import {getDistance, getPreciseDistance} from 'geolib';

const screen = Dimensions.get('window');
const ASPECT_RATIO = screen.width / screen.height;
const LATITUDE_DELTA = 0.1;
const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;

const TripDetails = ({route, navigation}) => {
  const GOOGLE_MAPS_APIKEY = 'AIzaSyC2BsJAYu3qHlMTEhkMPUnbFQpZ_QFbT0k';

  const tripDetails = route.params;
  console.log('tripDetails', tripDetails);
  const [tripDetail, setTripDetail] = useState();
  const [driverDetail, setDriverDetail] = useState();
  const [vehicleDetail, setVehicleDetail] = useState();
  const [driverName, setdriverName] = useState('');
  const [totalDistance, settotalDistance] = useState('');
  const LiveTrack = 'Live Tracking';

  const moment = require('moment');
  const getVehicleDetails = async () => {
    await firestore()
      .collection('assets')
      .where('driverId', '==', tripDetails.tripId.userId)
      .get()
      .then(snap => {
        let result = [];
        if (snap) {
          snap.forEach(documentSnapshot => {
            result.push({
              ...documentSnapshot.data(),
            });
          });
          console.log('result.....', result);
          setVehicleDetail(result);
        } else {
          console.log(' using size not found');
        }
      })
      .catch(e => {
        console.log('error from firebase', e);
      });
  };

  const getUserDetails = async () => {
    await firestore()
      .collection('users')
      .doc(tripDetails.tripId.userId)
      .get()
      .then(documentSnapshot => {
        if (documentSnapshot.exists) {
          console.log('use Info from db', documentSnapshot.data());
          setDriverDetail(documentSnapshot.data());
        }
      });
  };

  const calculatePreciseDistance = () => {
    var pdis = getPreciseDistance(
      {
        latitude: tripDetails.tripId.fromCoordinates.latitude,
        longitude: tripDetails.tripId.fromCoordinates.longitude,
      },
      {
        latitude: tripDetails.tripId.toCoordinates.latitude,
        longitude: tripDetails.tripId.toCoordinates.longitude,
      },
    );
    var totaldstn = pdis / 1000;
    settotalDistance(totaldstn);
  };

  React.useEffect(() => {
    if (tripDetails) {
      getVehicleDetails();
      getUserDetails();
      // calculateDistance();
      calculatePreciseDistance();
    }
  }, [tripDetails]);

  React.useEffect(() => {
    if (driverDetail) {
      setdriverName(driverDetail.userName);
    }
  }, [driverDetail]);

  const origin = {
    latitude: tripDetails.tripId.fromCoordinates.latitude,
    longitude: tripDetails.tripId.fromCoordinates.longitude,
  };

  const destination = {
    latitude: tripDetails.tripId.toCoordinates.latitude,
    longitude: tripDetails.tripId.toCoordinates.longitude,
  };

  useEffect(() => {
    if (tripDetails) setTripDetail(tripDetails.tripId);
  }, [tripDetails]);

  // console.log('totalDistance', +totalDistance.toFixed(2));
  // console.log('started At ', tripDetails.tripId.startedAt);
  // console.log('endedAt At ', tripDetails.tripId.endedAt);

  const startedAt = moment(tripDetails.tripId.startedAt).format(
    'MMMM Do YYYY, h:mm:ss a',
  );

  const endedAt = moment(tripDetails.tripId.endedAt).format(
    'MMMM Do YYYY, h:mm:ss a',
  );
  var ms = moment(endedAt, 'MMMM Do YYYY HH:mm:ss').diff(
    moment(startedAt, 'MMMM Do YYYY HH:mm:ss'),
  );
  var d = moment.duration(ms);
  var s = Math.floor(d.asHours()) + moment.utc(ms).format(':mm:ss');

  // console.log('startedAt', startedAt);
  // console.log('endedAt', endedAt);
  // console.log('s', s);

  // const diffInMs = Math.abs(
  //   tripDetails.tripId.endedAt - tripDetails.tripId.startedAt,
  // );

  // const difference = diffInMs / (1000 * 60 * 60);
  // const differenceMins = (diffInMs / (1000 * 60)) % 60;

  // const DriverName = driverDetail.userName;
  // console.log('difference', difference);
  // console.log('differenceMins', differenceMins);

  return (
    <ScrollView>
      <View>
        <View>
          <MapView
            style={{
              height: 250,
              width: '100%',
            }}
            initialRegion={{
              latitude: tripDetails.tripId.fromCoordinates.latitude,
              longitude: tripDetails.tripId.fromCoordinates.longitude,
              latitudeDelta: LATITUDE_DELTA,
              longitudeDelta: LONGITUDE_DELTA,
            }}>
            <Marker pinColor="blue" coordinate={origin} />
            <Marker coordinate={destination} />
            <MapViewDirections
              origin={origin}
              destination={destination}
              apikey={GOOGLE_MAPS_APIKEY}
              strokeWidth={3}
              strokeColor="blue"
            />
          </MapView>
        </View>
        <View
          style={{
            margin: 10,
          }}>
          <Text
            style={{
              margin: 5,
              marginStart: 10,
              marginTop: 10,
              fontWeight: 'bold',
            }}>
            TRIP DETAILS :
          </Text>
          <View style={{flexDirection: 'row', margin: 10}}>
            <View style={{margin: 5, flex: 1.5}}>
              <Text style={{fontWeight: 'bold'}}>Created Time :</Text>
              <Text>
                {moment(tripDetails.tripId.createdAt).format(
                  'MMMM Do YYYY, h:mm a',
                )}
              </Text>
            </View>

            <Text
              style={{
                color: '#008B8B',
                fontWeight: 'bold',
                fontSize: 15,
              }}>
              {tripDetails.tripId.status}
            </Text>
          </View>

          <View
            style={{
              flexDirection: 'row',
              alignItems: 'center',
              marginTop: 5,
              paddingRight: 30,
            }}>
            <Icon name="dot-single" style={{color: 'blue'}} size={35} />
            <Text>{tripDetails.tripId.fromLocation}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              alignItems: 'center',
              marginTop: 2,
              paddingRight: 30,
            }}>
            <Icon name="dot-single" style={{color: 'green'}} size={35} />
            <Text>{tripDetails.tripId.toLocation}</Text>
          </View>

          <View style={{flexDirection: 'row', marginStart: 8, marginTop: 8}}>
            <View>
              <Text style={{fontWeight: 'bold'}}>Started Time :</Text>
              <Text>
                {moment(tripDetails.tripId.createdAt).format(
                  'MMMM Do YYYY, h:mm a',
                )}
              </Text>
            </View>
            <View style={{marginLeft: 20}}>
              <Text style={{fontWeight: 'bold'}}>Ended Time :</Text>
              <Text>
                {moment(tripDetails.tripId.createdAt).format(
                  'MMMM Do YYYY, h:mm a',
                )}
              </Text>
            </View>
          </View>

          <View
            style={{
              flexDirection: 'row',
              margin: 10,
              marginTop: 15,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Time Travelled </Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{s} HH:MM:SS</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Total Distance </Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{totalDistance}Kms</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Project Name</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{tripDetails.tripId.projectName}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Route Name</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{tripDetails.tripId.routeName}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Tons</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{tripDetails.tripId.tons}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Fuel Level</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{tripDetails.tripId.fuelLevel}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 1}}>Mileage</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 1}}>{tripDetails.tripId.mileage}</Text>
          </View>
          <View
            style={{
              flexDirection: 'row',
              margin: 10,
            }}>
            <Text style={{fontWeight: 'bold', flex: 0.9}}>Commodity Name</Text>
            <Text style={{flex: 0.2}}>:</Text>
            <Text style={{flex: 0.9}}>{tripDetails.tripId.commodity}</Text>
          </View>

          <Text style={{fontWeight: 'bold', margin: 10}}>Driver Details :</Text>
          <View style={{marginStart: 30}}>
            <Text>{driverName}</Text>
            <Text>N/A</Text>
            {vehicleDetail &&
              vehicleDetail.map((item, key) => (
                <View style={{flexDirection: 'row'}}>
                  <Text>{item.assetNumber}.</Text>
                  <Text>({item.vehicleMake})</Text> 
                </View>
              ))}
          </View>
        </View>
      </View>
    </ScrollView>
  );
};

export default TripDetails;
```