Update requirement files with new feature templates and fix backend API error message, along with mobile project config updates and documentation improvements

This commit is contained in:
louiscklaw
2025-06-13 12:11:47 +08:00
parent f23a6b7d9c
commit 346992d4ec
3102 changed files with 220182 additions and 2896 deletions

View File

@@ -38,7 +38,15 @@ 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 {
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';
@@ -107,7 +115,12 @@ const EventList: React.FC<SpeakerListProps> = ({ speakers, speakerSessions }) =>
<IonContent fullscreen={true}>
<IonRefresher slot="fixed" onIonRefresh={handleRefresh}>
<IonRefresherContent pullingIcon={chevronDownCircleOutline} pullingText="Pull to refresh" refreshingSpinner="circles" refreshingText="Refreshing..."></IonRefresherContent>
<IonRefresherContent
pullingIcon={chevronDownCircleOutline}
pullingText="Pull to refresh"
refreshingSpinner="circles"
refreshingText="Refreshing..."
></IonRefresherContent>
</IonRefresher>
<IonHeader collapse="condense">
@@ -133,7 +146,10 @@ const EventList: React.FC<SpeakerListProps> = ({ speakers, speakerSessions }) =>
>
<div style={{ width: '70px' }}>
<IonAvatar>
<img alt="Silhouette of a person's head" src="https://plus.unsplash.com/premium_photo-1683121126477-17ef068309bc" />
<img
alt="Silhouette of a person's head"
src="https://plus.unsplash.com/premium_photo-1683121126477-17ef068309bc"
/>
</IonAvatar>
</div>
@@ -153,8 +169,17 @@ const EventList: React.FC<SpeakerListProps> = ({ speakers, speakerSessions }) =>
}}
>
<div style={{ fontSize: '1.2rem' }}>{order.title}</div>
<IonButton shape="round" onClick={() => handleShowOrderDetail('1')} size="small" fill="clear">
<IonIcon slot="icon-only" icon={chevronForwardOutline} size="small"></IonIcon>
<IonButton
shape="round"
onClick={() => handleShowOrderDetail('1')}
size="small"
fill="clear"
>
<IonIcon
slot="icon-only"
icon={chevronForwardOutline}
size="small"
></IonIcon>
</IonButton>
</div>
<div
@@ -182,7 +207,12 @@ const EventList: React.FC<SpeakerListProps> = ({ speakers, speakerSessions }) =>
</IonContent>
{/* REQ0079/event-filter */}
<IonModal ref={modal} trigger="open-modal" initialBreakpoint={0.5} breakpoints={[0, 0.25, 0.5, 0.75]}>
<IonModal
ref={modal}
trigger="open-modal"
initialBreakpoint={0.5}
breakpoints={[0, 0.25, 0.5, 0.75]}
>
<IonContent className="ion-padding">
<div
style={{

View File

@@ -159,6 +159,9 @@ const Tax: React.FC<{ amount: number }> = ({ amount }) => {
};
const OrderList: React.FC<SpeakerListProps> = ({ fetchOrderResult, speakerSessions }) => {
// TODO: fix not working order list
return <>hello order list</>;
const router = useIonRouter();
const [showPopover, setShowPopover] = useState(false);
@@ -167,7 +170,7 @@ const OrderList: React.FC<SpeakerListProps> = ({ fetchOrderResult, speakerSessio
const {
result: { status },
data: { orders },
data: orders,
} = fetchOrderResult;
function handleRefresh(event: CustomEvent<RefresherEventDetail>) {
@@ -291,7 +294,7 @@ const OrderList: React.FC<SpeakerListProps> = ({ fetchOrderResult, speakerSessio
>
<div style={{ display: 'inline-flex', gap: '0.5rem' }}>
<div style={{ fontWeight: 'bold' }}>Order time:</div>
<div>{order.createdAt.split('T')[0]}</div>
<div>{order?.createdAt?.toString().split('T')[0] || ''}</div>
</div>
<div>
<div style={{ fontWeight: 'bold' }}>Last payment date:</div>