// REQ0047/order-page import React, { useEffect, useRef, useState } from 'react'; import { IonHeader, IonToolbar, IonTitle, IonContent, IonPage, IonButtons, IonMenuButton, IonGrid, IonRow, IonCol, useIonRouter, IonButton, IonIcon, IonPopover, IonAvatar, IonImg, IonItem, IonLabel, IonList, IonModal, IonSearchbar, useIonModal, IonInput, IonRefresher, IonRefresherContent, RefresherEventDetail, } from '@ionic/react'; import SpeakerItem from '../../components/SpeakerItem'; import { Speaker } from '../../models/Speaker'; import { Session } from '../../models/Schedule'; import { connect } from '../../data/connect'; import * as selectors from '../../data/selectors'; import '../SpeakerList.scss'; import { getEvents } from '../../api/getEvents'; import { format } from 'date-fns'; import { Order } from './types'; import { bookmarksOutline, chevronBackOutline, chevronDownCircleOutline, chevronForwardOutline, heart, logoIonic, menuOutline } from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; import { getOrders } from '../../api/getOrders'; import Loading from '../../components/Loading'; import paths from '../../paths'; interface OwnProps {} interface StateProps { speakers: Speaker[]; speakerSessions: { [key: string]: Session[] }; } interface DispatchProps {} interface SpeakerListProps extends OwnProps, StateProps, DispatchProps {} const EventList: React.FC = ({ speakers, speakerSessions }) => { const router = useIonRouter(); const [orders, setEvents] = useState([]); const [showPopover, setShowPopover] = useState(false); const [popoverEvent, setPopoverEvent] = useState(); const modal = useRef(null); useEffect(() => { getOrders().then(({ data }) => { console.log({ data }); setEvents(data); }); }, []); function handleRefresh(event: CustomEvent) { setTimeout(() => { // Any calls to load data go here event.detail.complete(); }, 2000); } function handleShowOrderDetail(order_id: string) { router.push(paths.getOrderDetail(order_id)); } function handleNotImplemented() { router.push(paths.NOT_IMPLEMENTED); } function handleBookmarksClick() { router.push(paths.FAVOURITES_LIST); } if (!orders) return ; return ( {/* */} My Orders My Orders {orders.map((order, idx) => (
Silhouette of a person's head
{order.title}
handleShowOrderDetail('1')} size="small" fill="clear">
Order time: {order.createdAt}
Last payment date: {order.last_payment_date}
Number of applicants: 38
Remaining dates: 50
{order.status}
))}
{/* REQ0079/event-filter */}
Filter
Maximum number of participant
2-10 12-40 All
Held date
Weekly Monthly All
Apply
); }; export default connect({ mapStateToProps: (state) => ({ speakers: selectors.getSpeakers(state), speakerSessions: selectors.getSpeakerSessions(state), }), component: React.memo(EventList), });