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
}