import React, { useState } from 'react' import { OrderList, useLanguage, useOrder, ToastType, useToast } from 'ordering-components/native' import { useTheme } from 'styled-components/native'; import { OText } from '../shared' import { NotFoundSource } from '../NotFoundSource' import { ItemWrap } from './styles' import { OrdersOptionParams } from '../../types' import { getOrderStatus } from '../../utils' import { Placeholder, PlaceholderLine, Fade } from "rn-placeholder"; import { View } from 'react-native' import moment from 'moment' const OrdersOptionUI = (props: OrdersOptionParams) => { const { navigation, activeOrders, preOrders, orderList, pagination, titleContent, customArray, onNavigationRedirect, orderStatus, loadMoreOrders, loadOrders } = props const [, t] = useLanguage() const [, { reorder }] = useOrder() const { showToast } = useToast() const { loading, error, orders: values } = orderList const theme = useTheme(); const imageFails = activeOrders ? theme.images.general.emptyActiveOrders : theme.images.general.emptyPastOrders const orders = customArray || values || [] const [reorderLoading, setReorderLoading] = useState(false) const handleReorder = async (orderId: number) => { setReorderLoading(true) try { const { error, result } = await reorder(orderId) if (!error) { onNavigationRedirect && onNavigationRedirect('CheckoutNavigator', { cartUuid: result.uuid }) setReorderLoading(false) return } setReorderLoading(false) } catch (err) { showToast(ToastType.Error, t('ERROR', err.message)) setReorderLoading(false) } } const formatDate = (dateStr: string) => { return moment(dateStr).format('MMMM DD,YYYY - hh:mm a'); } return ( <> {/* {(orders.length > 0) && ( <> {titleContent || (activeOrders ? t('ACTIVE', 'Active') : preOrders ? t('PREORDERS', 'Preorders') : t('PAST', 'Past'))} )} */} {!loading && orders.length === 0 && ( )} {loading && ( <> {[...Array(3)].map((item, i) => ( ))} )} {!loading && !error && orders.length > 0 && ( orders.map((order: any) => {order?.business?.name} {`${getOrderStatus(order.status, t)?.value} on ${formatDate(order?.created_at)}`} ) )} ) } export const LastOrder = (props: OrdersOptionParams) => { const MyOrdersProps = { ...props, UIComponent: OrdersOptionUI, orderStatus: [1, 2, 5, 6, 10, 11, 12, 16, 17], useDefualtSessionManager: true, paginationSettings: { initialPage: 1, pageSize: 3, controlType: 'infinity' }, noGiftCardOrders: true } return }