diff --git a/apps/edr-passenger-web/backoffice/src/app/dashboard/page.tsx b/apps/edr-passenger-web/backoffice/src/app/dashboard/page.tsx index 581704933..98036e71f 100644 --- a/apps/edr-passenger-web/backoffice/src/app/dashboard/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/dashboard/page.tsx @@ -49,7 +49,7 @@ export default function DashboardPage() {

Dashboard

-

Welcome back! Here's what's happening today.

+

Hello, welcome back! Here's what's happening today.

diff --git a/apps/edr-passenger-web/backoffice/src/types/edr.ts b/apps/edr-passenger-web/backoffice/src/types/edr.ts index e126090c2..cc8f8639b 100644 --- a/apps/edr-passenger-web/backoffice/src/types/edr.ts +++ b/apps/edr-passenger-web/backoffice/src/types/edr.ts @@ -1,6 +1,6 @@ import { Passenger } from '@edr/types'; -// Enhanced Booking Types +// Enhanced Booking Types export interface Booking { id: string; bookingRef: string; diff --git a/apps/edr-passenger-web/portal/src/components/schedules/ScheduleForm.tsx b/apps/edr-passenger-web/portal/src/components/schedules/ScheduleForm.tsx deleted file mode 100644 index 7174c3197..000000000 --- a/apps/edr-passenger-web/portal/src/components/schedules/ScheduleForm.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { FormEvent, useState } from "react"; -import { Button, FormField } from "@edr/ui-common"; - -export interface ScheduleFormPayload { - trainCode: string; - originStationId: string; - destinationStationId: string; - departureTime: string; - arrivalTime: string; - basePrice: number; -} - -export interface ScheduleFormProps { - onSubmit: (payload: ScheduleFormPayload) => void; - isSubmitting?: boolean; -} - -const ScheduleForm = ({ onSubmit, isSubmitting }: ScheduleFormProps) => { - const [trainCode, setTrainCode] = useState(""); - const [originStationId, setOriginStationId] = useState(""); - const [destinationStationId, setDestinationStationId] = useState(""); - const [departureTime, setDepartureTime] = useState(""); - const [arrivalTime, setArrivalTime] = useState(""); - const [basePrice, setBasePrice] = useState("0"); - - const handleSubmit = (event: FormEvent) => { - event.preventDefault(); - onSubmit({ - trainCode, - originStationId, - destinationStationId, - departureTime, - arrivalTime, - basePrice: Number(basePrice), - }); - }; - - return ( -
- setTrainCode(e.target.value)} - required - /> - setOriginStationId(e.target.value)} - required - /> - setDestinationStationId(e.target.value)} - required - /> - setDepartureTime(e.target.value)} - required - /> - setArrivalTime(e.target.value)} - required - /> - setBasePrice(e.target.value)} - min="0" - /> - - - ); -}; - -export default ScheduleForm; diff --git a/apps/edr-passenger-web/portal/src/components/schedules/ScheduleTable.tsx b/apps/edr-passenger-web/portal/src/components/schedules/ScheduleTable.tsx deleted file mode 100644 index 3d8b49242..000000000 --- a/apps/edr-passenger-web/portal/src/components/schedules/ScheduleTable.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Table, type TableColumn } from "@edr/ui-common"; - -interface ISchedule { - id: string; - trainCode: string; - status: string; - departureTime: string; - arrivalTime: string; - basePrice: number; -} - -export interface ScheduleTableProps { - schedules: ISchedule[]; -} - -const columns: TableColumn[] = [ - { key: "trainCode", header: "Train" }, - { key: "status", header: "Status" }, - { - key: "departureTime", - header: "Departure", - render: (row) => new Date(row.departureTime).toLocaleString(), - }, - { - key: "arrivalTime", - header: "Arrival", - render: (row) => new Date(row.arrivalTime).toLocaleString(), - }, - { - key: "basePrice", - header: "Base price", - render: (row) => row.basePrice.toFixed(2), - }, -]; - -const ScheduleTable = ({ schedules }: ScheduleTableProps) => ( - row.id} - emptyMessage="No schedules yet" - /> -); - -export default ScheduleTable; diff --git a/apps/edr-passenger-web/portal/src/components/seats/SeatSelector.tsx b/apps/edr-passenger-web/portal/src/components/seats/SeatSelector.tsx deleted file mode 100644 index 38af99fcd..000000000 --- a/apps/edr-passenger-web/portal/src/components/seats/SeatSelector.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import clsx from "clsx"; -import type { Passenger } from "@edr/types"; - -export interface SeatSelectorProps { - seats: Passenger.ISeat[]; - selectedSeatId?: string; - onSelect: (seatId: string) => void; -} - -const SeatSelector = ({ - seats, - selectedSeatId, - onSelect, -}: SeatSelectorProps) => ( -
- {seats.map((seat) => { - const isAvailable = seat.status === "AVAILABLE"; - const isSelected = seat.id === selectedSeatId; - return ( - - ); - })} -
-); - -export default SeatSelector; diff --git a/apps/edr-passenger-web/portal/src/components/tickets/TicketForm.tsx b/apps/edr-passenger-web/portal/src/components/tickets/TicketForm.tsx deleted file mode 100644 index c717030bb..000000000 --- a/apps/edr-passenger-web/portal/src/components/tickets/TicketForm.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { FormEvent, useState } from "react"; -import { Button, FormField } from "@edr/ui-common"; - -import type { CreateTicketPayload } from "../../services/tickets.service"; - -export interface TicketFormProps { - onSubmit: (payload: CreateTicketPayload) => void; - isSubmitting?: boolean; -} - -const TicketForm = ({ onSubmit, isSubmitting }: TicketFormProps) => { - const [reference, setReference] = useState(""); - const [passengerId, setPassengerId] = useState(""); - const [scheduleId, setScheduleId] = useState(""); - const [seatId, setSeatId] = useState(""); - const [pricePaid, setPricePaid] = useState("0"); - - const handleSubmit = (event: FormEvent) => { - event.preventDefault(); - onSubmit({ - reference, - passengerId, - scheduleId, - seatId, - pricePaid: Number(pricePaid), - issuedAt: new Date().toISOString(), - }); - }; - - return ( -
- setReference(e.target.value)} - required - /> - setPassengerId(e.target.value)} - required - /> - setScheduleId(e.target.value)} - required - /> - setSeatId(e.target.value)} - required - /> - setPricePaid(e.target.value)} - min="0" - /> - - - ); -}; - -export default TicketForm; diff --git a/apps/edr-passenger-web/portal/src/components/tickets/TicketTable.tsx b/apps/edr-passenger-web/portal/src/components/tickets/TicketTable.tsx deleted file mode 100644 index eddc72a8d..000000000 --- a/apps/edr-passenger-web/portal/src/components/tickets/TicketTable.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import type { Passenger } from "@edr/types"; -import { Table, type TableColumn } from "@edr/ui-common"; - -export interface TicketTableProps { - tickets: Passenger.ITicket[]; -} - -const columns: TableColumn[] = [ - { key: "reference", header: "Reference" }, - { key: "passengerId", header: "Passenger" }, - { key: "status", header: "Status" }, - { - key: "issuedAt", - header: "Issued", - render: (row) => new Date(row.issuedAt).toLocaleString(), - }, - { - key: "pricePaid", - header: "Price", - render: (row) => row.pricePaid.toFixed(2), - }, -]; - -const TicketTable = ({ tickets }: TicketTableProps) => ( -
row.id} - emptyMessage="No tickets yet" - /> -); - -export default TicketTable; diff --git a/apps/edr-passenger-web/portal/src/hooks/useSchedules.ts b/apps/edr-passenger-web/portal/src/hooks/useSchedules.ts deleted file mode 100644 index e4fc7c2f7..000000000 --- a/apps/edr-passenger-web/portal/src/hooks/useSchedules.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { useQuery } from "@tanstack/react-query"; - -import { schedulesService } from "../services/schedules.service"; - -export const useSchedules = () => - useQuery({ - queryKey: ["schedules"], - queryFn: schedulesService.list, - }); - -export const useSchedule = (id: string) => - useQuery({ - queryKey: ["schedules", id], - queryFn: () => schedulesService.get(id), - enabled: Boolean(id), - }); diff --git a/apps/edr-passenger-web/portal/src/hooks/useStations.ts b/apps/edr-passenger-web/portal/src/hooks/useStations.ts deleted file mode 100644 index 23b4040a0..000000000 --- a/apps/edr-passenger-web/portal/src/hooks/useStations.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { useQuery } from "@tanstack/react-query"; - -import { stationsService } from "../services/stations.service"; - -export const useStations = () => - useQuery({ - queryKey: ["stations"], - queryFn: stationsService.list, - }); diff --git a/apps/edr-passenger-web/portal/src/hooks/useTickets.ts b/apps/edr-passenger-web/portal/src/hooks/useTickets.ts deleted file mode 100644 index f5fc84884..000000000 --- a/apps/edr-passenger-web/portal/src/hooks/useTickets.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { useQuery } from "@tanstack/react-query"; - -import { ticketsService } from "../services/tickets.service"; - -export const useTickets = () => - useQuery({ - queryKey: ["tickets"], - queryFn: ticketsService.list, - }); - -export const useTicket = (id: string) => - useQuery({ - queryKey: ["tickets", id], - queryFn: () => ticketsService.get(id), - enabled: Boolean(id), - }); diff --git a/apps/edr-passenger-web/portal/src/services/schedules.service.ts b/apps/edr-passenger-web/portal/src/services/schedules.service.ts deleted file mode 100644 index 1b65bdc4b..000000000 --- a/apps/edr-passenger-web/portal/src/services/schedules.service.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Passenger } from "@edr/types"; - -import { api } from "../utils/api"; - -export const schedulesService = { - list: async (): Promise => { - const { data } = await api.get("/schedules"); - return data.data; - }, - get: async (id: string): Promise => { - const { data } = await api.get(`/schedules/${id}`); - return data.data; - }, -}; diff --git a/apps/edr-passenger-web/portal/src/services/stations.service.ts b/apps/edr-passenger-web/portal/src/services/stations.service.ts deleted file mode 100644 index 20010954a..000000000 --- a/apps/edr-passenger-web/portal/src/services/stations.service.ts +++ /dev/null @@ -1,14 +0,0 @@ -// import type { IStation } from "../types"; -import { api } from "../utils/api"; -import type { Passenger } from "@edr/types"; - -export const stationsService = { - list: async (): Promise => { - const { data } = await api.get("/stations"); - return data.data; - }, - get: async (id: string): Promise => { - const { data } = await api.get(`/stations/${id}`); - return data.data; - }, -}; diff --git a/apps/edr-passenger-web/portal/src/services/tickets.service.ts b/apps/edr-passenger-web/portal/src/services/tickets.service.ts deleted file mode 100644 index 4a6c7ac85..000000000 --- a/apps/edr-passenger-web/portal/src/services/tickets.service.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { Passenger, PaginatedResponse } from "@edr/types"; - -import { api } from "../utils/api"; - -export interface CreateTicketPayload { - reference: string; - passengerId: string; - scheduleId: string; - seatId: string; - pricePaid: number; - issuedAt: string; -} - -export const ticketsService = { - list: async (): Promise> => { - const { data } = await api.get("/tickets"); - return data.data; - }, - get: async (id: string): Promise => { - const { data } = await api.get(`/tickets/${id}`); - return data.data; - }, - create: async (payload: CreateTicketPayload): Promise => { - const { data } = await api.post("/tickets", payload); - return data.data; - }, - cancel: async (id: string): Promise => { - await api.delete(`/tickets/${id}`); - }, -};