import React, { useEffect, useState } from 'react'; import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonList, IonLoading, IonPage, IonText, IonTitle, IonToolbar, useIonViewWillEnter, } from '@ionic/react'; import { chevronForwardOutline, receiptOutline } from 'ionicons/icons'; import { useHistory } from 'react-router-dom'; import { supabase } from '../supabase'; import type { Tables } from '../database.types'; import { setStatusBarBackground, setStatusBarStyle, Style, } from '../utils/statusBar'; type Order = Tables<'orders'>; const statusCopy: Record = { pending: 'Pending', confirmed: 'Confirmed', packed: 'Packed', out_for_delivery: 'Out for delivery', delivered: 'Delivered', }; const MyOrders: React.FC = () => { const history = useHistory(); const [orders, setOrders] = useState([]); const [isLoading, setIsLoading] = useState(true); const [errorMessage, setErrorMessage] = useState(''); useIonViewWillEnter(() => { setStatusBarStyle(Style.Dark); setStatusBarBackground('#ffffff'); }); useEffect(() => { const loadOrders = async () => { setIsLoading(true); const { data, error } = await supabase .from('orders') .select('*') .order('created_at', { ascending: false }); if (error) { setErrorMessage('We could not load your orders right now.'); window.setTimeout(() => setErrorMessage(''), 4000); setOrders([]); setIsLoading(false); return; } setOrders(data ?? []); setIsLoading(false); }; loadOrders(); }, []); return ( history.replace('/home')}> Back My Orders {errorMessage && (

{errorMessage}

)} {!isLoading && orders.length === 0 ? (

No orders yet

Your placed orders will appear here so you can track their status.

history.push('/home')}> Start shopping
) : ( {orders.map((order) => ( ))} )}
); }; export default MyOrders;