Browse Source

remove unused file

master
farhantock 7 months ago
parent
commit
f3da4b7292
  1. 24
      src/components/CustomToast.js
  2. 15
      src/components/HorizontalLine.js
  3. 11
      src/components/NoData.js
  4. 144
      src/components/Shipment.js
  5. 13
      src/components/VerticalLine.js
  6. 20
      src/services/sqlite/ospod_photo.js
  7. 52
      src/utils/Toast.js
  8. 37
      src/utils/general.js
  9. 38
      src/utils/shipment.js

24
src/components/CustomToast.js

@ -1,24 +0,0 @@
import React from "react";
import { Alert, CloseIcon, HStack, IconButton, Text, Toast, ToastDescription, ToastTitle, useToast, VStack } from "@gluestack-ui/themed";
const CustomToast = ({
id,
status,
variant,
title,
description,
isClosable,
...rest
}) => {
const toast = useToast();
return (
<Toast nativeID={"toast-" + id} action={status ? status : "info"} variant={variant ? variant : "accent"}>
<VStack space="xs">
{ title ? <ToastTitle>{title}</ToastTitle> : null }
{ description ? <ToastDescription>{description}</ToastDescription> : null }
</VStack>
</Toast>
)
}
export default CustomToast;

15
src/components/HorizontalLine.js

@ -1,15 +0,0 @@
import React from "react";
import { View } from "react-native";
const HorizontalLine = ({width, borderStyle}) => {
return <View style={{
borderBottomWidth: 1,
minWidth: width ? width : 25,
flex: 1,
alignSelf: 'center',
borderColor: '#d9d8d7',
borderStyle: borderStyle ? borderStyle : 'solid'
}}></View>
}
export default HorizontalLine;

11
src/components/NoData.js

@ -1,11 +0,0 @@
import React from "react"
import { Box, Text } from "@gluestack-ui/themed"
import { strings } from "../utils/i18n"
export const NoDataContent = () => {
return (
<Box flex={1} alignItems='center' my="$1/2">
<Text color="red">{strings('global.noData')}</Text>
</Box>
)
}

144
src/components/Shipment.js

@ -1,144 +0,0 @@
import { Box, HStack, Heading, Text } from '@gluestack-ui/themed'
import { VStack } from '@gluestack-ui/themed'
import React from 'react'
import { strings } from '../utils/i18n'
import VerticalLine from './VerticalLine'
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import { colorStatusDecider, dropPointLocationRenderer } from '../utils/general'
import { Image, ScrollView } from 'react-native'
import { TouchableOpacity } from 'react-native-gesture-handler'
import { store } from '../appredux/store'
import { setSelectedHistoryPicture, setSelectedHistoryPictures, setShowHistoryPicture } from '../appredux/actions'
export const RenderDeliveryOrder = ({data}) => {
if (data && data.length > 0) {
return data.map((item, idx) => {
return (
<VStack key={idx}>
<Text _dark={{ color: "$textLight200" }} fontSize="$md">
{strings('label.dropPointLocations')}
</Text>
<RenderDropPoint data={item.drop_point} />
</VStack>
)
})
}
}
export const PointConnector = () => {
return (
<HStack py={4}>
<VStack w='20%' alignItems='center' alignSelf='center'>
<VerticalLine />
</VStack>
<VStack w='80%'></VStack>
</HStack>
)
}
export const RenderDropPoint = ({data}) => {
if (data && data.length > 0) {
return data.map((item, idx) => {
return (
<VStack key={idx}>
<HStack py={4}>
<VStack w='20%' alignItems='center' alignSelf='center'>
<MaterialCommunityIcons
name="map-marker"
color={colorStatusDecider(item)}
size={30}
/>
</VStack>
<VStack w='80%'>
<Heading
style={{color: colorStatusDecider(item)}}
size="sm">
{dropPointLocationRenderer(item, 'name')}
</Heading>
<Text
style={{color: colorStatusDecider(item)}}
fontSize="$sm">
{dropPointLocationRenderer(item, 'address')}
</Text>
{item.status === 'completed' || item.status === 'cancel' ?
<RenderDropPointPictures data={item.attachments} />
: null
}
{item.status === 'completed' || item.status === 'cancel' ?
<RenderDropPointSignature data={item.signatures} />
: null
}
{item.status === 'completed' || item.status === 'cancel' ?
<Box mt={5}>
<Text bold>{strings('global.notes')}:</Text>
<Text>{item.driver_notes && item.driver_notes !== '' ? item.driver_notes : '-'}</Text>
</Box>
: null
}
</VStack>
</HStack>
{ idx !== data.length - 1 ? <PointConnector /> : null}
</VStack>
)
})
}
}
export const RenderDropPointPictures = ({data}) => {
return (
<VStack mt={10}>
<Box>
<Text bold>{strings('history.dropPointPictures')}</Text>
</Box>
<ScrollView horizontal={true} showsHorizontalScrollIndicator={false}>
{ data && data.length > 0 ? data.map((item, idx) => (
<TouchableOpacity key={idx} onPress={() => {
store.dispatch(setSelectedHistoryPicture(item))
store.dispatch(setShowHistoryPicture(true))
}}>
<Box pr={5}>
<Image
idx={idx}
source={{uri: item}}
height={100}
width={120}
/>
</Box>
</TouchableOpacity>
)) : <Text>-</Text> }
</ScrollView>
</VStack>
)
}
export const RenderDropPointSignature = ({data}) => {
return (
<VStack mt={10}>
<Box>
<Text bold>{strings('history.signaturePicture')}</Text>
</Box>
<ScrollView horizontal={true} showsHorizontalScrollIndicator={false}>
{ data && data.length > 0 ? data.map((item, idx) => (
<TouchableOpacity key={idx} onPress={() => {
store.dispatch(setSelectedHistoryPicture(item))
store.dispatch(setShowHistoryPicture(true))
}}>
<Box pr={5}>
<Image
idx={idx}
source={{uri: item}}
height={150}
width={120}
/>
</Box>
</TouchableOpacity>
)) : <Text>-</Text> }
</ScrollView>
</VStack>
)
}

13
src/components/VerticalLine.js

@ -1,13 +0,0 @@
import React from "react";
import { View } from "react-native";
const VerticalLine = ({height}) => {
return <View style={{
borderWidth: 0.2,
minHeight: height ? height : 10,
borderColor: 'grey',
// borderStyle: 'dashed'
}}></View>
}
export default VerticalLine;

20
src/services/sqlite/ospod_photo.js

@ -1,20 +0,0 @@
import { deleteRow, dropTable, insertTable, selectRow } from './index';
const TABLE_NAME = 'ospod_photo';
export const storePhoto = (user_id, drop_point_id, image_uri, image_blob, lat, lon) => {
insertTable(TABLE_NAME, [user_id, drop_point_id, image_uri, image_blob, lat, lon])
}
export const deletePhoto = (row_id, callback) => {
deleteRow(TABLE_NAME, row_id, (deleted) => callback(deleted))
}
export const selectAllPhoto = (callback) => {
selectRow(TABLE_NAME, null, (data) => callback(data))
}
export const dropTablePhoto = (callback) => {
dropTable(TABLE_NAME, (dropped) => callback(dropped))
}

52
src/utils/Toast.js

@ -1,52 +0,0 @@
import React from "react";
import CustomToast from "../components/CustomToast";
import { createContext, useContext, useRef } from "react";
import Toast, { BaseToast, ErrorToast } from "react-native-toast-message";
import { View, Text } from 'react-native'
const renderTypeToast = (type) => {
let bgColor = 'muted.600'
if (type) {
if (type === 'success') {
bgColor = 'green.600';
}
else if (type === 'error') {
bgColor = 'red.600';
}
else if (type === 'warning') {
bgColor = 'yellow.600';
}
}
return bgColor;
}
export const toastr = {
show: (message, type, duration = 5000) => {
return (
<CustomToast
// title="Something went wrong"
description={message}
variant="accent"
isClosable={true}
status={type}
bg={renderTypeToast(type)}
/>
)
},
};
export const toastConfig = {
success: ({ text1, props }) => (
<View style={{ width: '80%', backgroundColor: 'green', borderRadius: 10, padding: 10, marginBottom: 35}}>
<Text style={{ color: '#ffffff', fontSize: 14 }}>{text1}</Text>
</View>
),
error: ({ text1, props }) => (
<View style={{ width: '80%', backgroundColor: 'red', borderRadius: 10, padding: 10, marginBottom: 35}}>
<Text style={{ color: '#ffffff', fontSize: 14 }}>{text1}</Text>
</View>
)
};

37
src/utils/general.js

@ -1,37 +0,0 @@
import { color_cancel, color_complete, color_on_progress, color_open } from "../config/Styles";
export const EMPTY_DATE = ["1900-01-01 00:00:00", null, ""];
export const DATE_FORMAT = "D MMMM YYYY HH:mm";
export const dropPointLocationRenderer = (data, key) => {
let spatial_type = data.spatial_type;
let output = '-';
let key_ = 'transitpoint_'+key;
if (spatial_type === 'pool') {
key_ = 'pool_'+key;
output = data?.join?.[key_];
}
else if (spatial_type === 'transit_point') {
key_ = 'transitpoint_'+key;
output = data?.join?.[key_];
}
else if (spatial_type === 'geofence') {
key_ = 'geofence_'+key;
output = data?.join?.[key_];
}
// validate to put -
if (output == "") {
output = "-"
}
return output;
}
export const colorStatusDecider = (item) => {
if (!item) {
return null;
}
// return item.status === "open" || EMPTY_DATE.includes(item.in_time) ? color_open : item.status === "on-progress" ? color_on_progress : color_complete
return item.status === "open" ? color_open : item.status === "on-progress" ? color_on_progress : item.status === "completed" ? color_complete : color_cancel;
}

38
src/utils/shipment.js

@ -1,38 +0,0 @@
import { setSelectedDropPoint, setShipmentData } from "../appredux/actions";
import { store } from "../appredux/store";
import ApiShipment from "../services/api/shipment";
export const getShipmentData = async () => {
const shipment = await ApiShipment.searchDetail('open,on-progress');
if (shipment && shipment.status === true && shipment.data) {
if (shipment.data.length > 0) {
return shipment.data[0];
}
else {
return null;
}
}
else {
return null;
}
}
// this function is to update shipmentData and selectedDropPoint state in redux based on current selectedDropPoint
// flow -> get API then update redux state
export const updateShipmentState = (dp_item, callback) => {
let promiseSave = new Promise((resolve, reject) => {
let shipment = getShipmentData();
resolve(shipment);
})
promiseSave.then(val => {
let doIdx = val.delivery_order.findIndex(x => parseInt(x.id) === parseInt(dp_item.delivery_order));
let dpIdx = val.delivery_order[doIdx].drop_point.findIndex(x => parseInt(x.id) === parseInt(dp_item.id));
let updatedDp = val.delivery_order[doIdx].drop_point[dpIdx];
store.dispatch(setShipmentData(val));
store.dispatch(setSelectedDropPoint(null));
store.dispatch(setSelectedDropPoint(updatedDp))
callback(updatedDp)
})
}
Loading…
Cancel
Save