import React, { useState } from 'react' import { useLanguage, useUtils } from 'ordering-components/native' import { StyleSheet, TouchableOpacity, ScrollView } from 'react-native' import { OButton, OIcon, OText } from '../shared' import { Card, Logo, Information, MyOrderOptions, Status, WrappButton } from './styles' import { PreviousOrdersParams } from '../../types' import { useTheme } from 'styled-components/native' export const PreviousOrders = (props: PreviousOrdersParams) => { const { orders, pagination, onNavigationRedirect, loadMoreOrders, getOrderStatus, handleReorder, reorderLoading } = props const theme = useTheme(); const styles = StyleSheet.create({ logo: { borderRadius: 10, width: 75, height: 75 }, reorderbutton: { width: 80, height: 40, paddingLeft: 0, paddingRight: 0, borderRadius: 10, flex: 1 }, reorderLoading: { width: 80, height: 40, borderRadius: 10, }, buttonText: { color: theme.colors.white, fontSize: 12, marginLeft: 2, marginRight: 2 } }) const [, t] = useLanguage() const [reorderSelected,setReorderSelected] = useState(null) const [{ parseDate, optimizeImage }] = useUtils() const allowedOrderStatus = [1, 11, 15] const [isReviewedOrders, setIsReviewedOrders] = useState>([]) const handleReviewState = (orderId: any) => { if (!orderId || isReviewedOrders.includes(orderId)) return setIsReviewedOrders([ ...isReviewedOrders, orderId ]) } const handleClickViewOrder = (uuid: string) => { onNavigationRedirect && onNavigationRedirect('OrderDetails', { orderId: uuid }) } const handleClickOrderReview = (order: any) => { onNavigationRedirect && onNavigationRedirect( 'ReviewOrder', { order: { id: order?.id, business_id: order?.business_id, logo: order.business?.logo, driver: order?.driver, products: order?.products, review: order?.review, user_review: order?.user_review }, handleReviewState: handleReviewState } ) } const handleReorderClick = (id : number) => { setReorderSelected(id) handleReorder(id) } return ( {orders.map((order: any) => ( {!!order.business?.logo && ( )} {order.business?.name} {order?.delivery_datetime_utc ? parseDate(order?.delivery_datetime_utc) : parseDate(order?.delivery_datetime, { utc: false })} handleClickViewOrder(order?.uuid)}> {t('MOBILE_FRONT_BUTTON_VIEW_ORDER', 'View order')} { allowedOrderStatus.includes(parseInt(order?.status)) && !order.review && !isReviewedOrders.includes(order?.id) && ( handleClickOrderReview(order)}> {t('REVIEW_ORDER', 'Review Order')} )} {getOrderStatus(order.status)?.value} handleReorderClick(order.id)} isLoading={reorderLoading && order.id === reorderSelected} /> ))} {pagination.totalPages && pagination.currentPage < pagination.totalPages && ( )} ) }