import React, { useState, useEffect } from 'react' import { useLanguage } from 'ordering-components/native'; import { View, StyleSheet, RefreshControl, Platform } from 'react-native'; import AntDesignIcon from 'react-native-vector-icons/AntDesign' import { GiftCardOrdersList } from '../GiftCard/GiftCardOrdersList' import { OrdersOption } from '../OrdersOption' import { HeaderTitle, OButton, OText } from '../shared' import { ScrollView } from 'react-native-gesture-handler'; import { Tab } from './styles' import { useTheme } from 'styled-components/native'; import { Container } from '../../layouts/Container'; import NavBar from '../NavBar' export const MyOrders = (props: any) => { const { navigation, hideOrders, businessesSearchList } = props const [, t] = useLanguage() const theme = useTheme() const [refreshing] = useState(false); const [refreshOrders, setRefreshOrders] = useState(false) const [isEmptyBusinesses, setIsEmptyBusinesses] = useState(false) const [businessOrderIds, setBusinessOrderIds] = useState([]) const [ordersLength, setOrdersLength] = useState({ activeOrdersLength: null, previousOrdersLength: 0, preordersLength: 0 }); const [selectedOption, setSelectedOption] = useState(!hideOrders ? 'orders' : 'business') const notOrderOptions = ['business', 'products'] const allEmpty = (ordersLength?.activeOrdersLength === 0 && ordersLength?.previousOrdersLength === 0 && ordersLength?.preordersLength === 0) || ((isEmptyBusinesses || businessOrderIds?.length === 0) && hideOrders) const isChewLayout = theme?.header?.components?.layout?.type?.toLowerCase() === 'chew' const showNavbar = theme?.bar_menu?.components?.orders?.hidden const hideOrdersTheme = theme?.bar_menu?.components?.orders?.hidden const hideProductsTab = theme?.orders?.components?.products_tab?.hidden const hideBusinessTab = theme?.orders?.components?.business_tab?.hidden const MyOrdersMenu = [ { key: 'orders', value: t('ORDERS', 'Orders'), disabled: false }, { key: 'business', value: t('BUSINESS', 'Business'), disabled: hideBusinessTab }, { key: 'products', value: t('PRODUCTS', 'Products'), disabled: hideProductsTab }, { key: 'giftCards', value: t('GIFT_CARD', 'Gift card'), disabled: false } ] const goToBack = () => navigation?.canGoBack() && navigation.goBack() const handleOnRefresh = () => { setRefreshOrders(true); } const styles = StyleSheet.create({ container: { paddingVertical: 5, borderColor: theme.colors.clear, backgroundColor: '#FFF' }, featuredStyle: { display: 'none', }, tabStyle: { marginTop: 10, height: 4, borderTopStartRadius: 4, borderTopEndRadius: 4, backgroundColor: theme.colors.textPrimary, }, tabDeactived: { marginTop: 10, height: 4 } }); return ( handleOnRefresh()} /> } > {(isChewLayout || showNavbar) && ( {!props.hideBackBtn && (!isChewLayout || (isChewLayout && hideOrdersTheme)) && ( )} )} {!hideOrders && !isChewLayout && !showNavbar && ( )} {!allEmpty && ( {MyOrdersMenu.filter(option => (!hideOrders || option.key !== 'orders') && !option.disabled).map(option => ( setSelectedOption(option.key)} style={ { borderBottomColor: selectedOption === option.key ? theme.colors.textNormal : theme.colors.border, } } > {option?.value} ))} )} {selectedOption === 'orders' && ( <> )} {selectedOption === 'business' && ( )} {selectedOption === 'products' && ( )} {selectedOption === 'giftCards' && ( )} ) }