feat(bookings): enhance booking filtering and pagination

- Added createdFrom and createdTo filters to BookingListFilterOptions and FilterBookingDto for date range filtering.
- Updated BookingsService and BookingsRepository to handle pagination metadata in responses.
- Enhanced BookingsController to return pagination metadata when no company is linked.
- Introduced ModeIndicator component to display current operational mode across various pages.
- Added ContainersCard and KeyFactsStrip components for detailed booking views.
- Implemented CargoModeCell, BookingTypeBadge, and PaymentBadge for consistent display of booking attributes.
- Updated MyBookings and ContractsList pages to include new filters and display enhancements.
This commit is contained in:
Marshal
2026-06-21 07:41:04 +00:00
parent f82dad3657
commit 171e02cf7f
16 changed files with 763 additions and 42 deletions

View File

@@ -41,6 +41,7 @@ import {
type ReactNode,
useState,
} from "react";
import { PROFILE_TYPE_LABELS } from "@/constants/profileMode";
export interface SidebarItem {
label: string;
@@ -79,14 +80,6 @@ type SwitchResult =
| { success: true; data?: unknown }
| { success: false; error?: { message?: string } };
const PROFILE_TYPE_LABELS: Record<string, string> = {
importer: "Importer",
exporter: "Exporter",
freight_forwarder: "Freight Forwarder",
dj_freight_forwarder: "DJ Freight Forwarder",
transporter: "Transporter",
};
function getInitials(name: string): string {
return name
.split(" ")
@@ -813,8 +806,7 @@ export function AppLayout({
<Text size="sm" c="dimmed">
You don't have an {modeLabel(targetMode).toLowerCase()} profile yet.
Add your business license to create one and switch to{" "}
{modeLabel(targetMode).toLowerCase()} mode. A new reference will be
generated automatically.
{modeLabel(targetMode).toLowerCase()} mode.
</Text>
<FileInput
label="Business license"