feat: add Shipping Agent License Renewal and Waiver Application pages

- Implement ShippingAgentLicenseRenewalPage for submitting renewal documents with file uploads.
- Create WaiverApplicationPage for multi-step waiver application process, including document uploads and review.
- Add WaiverPage to display application status and details, including waiver letter download functionality.
- Introduce document handling components and validation for required fields in both applications.
This commit is contained in:
fitse-yotor
2026-07-28 14:46:06 +03:00
parent 4c01c5321b
commit e39f80941e
39 changed files with 9900 additions and 0 deletions

View File

@@ -37,6 +37,19 @@ import { VesselRegistrationFormBuilderPage } from '../features/vessel-registrati
import { VesselOwnershipTransferQueuePage } from '../features/vessel-registration/pages/VesselOwnershipTransferQueuePage';
import { VesselOwnershipTransferReviewPage } from '../features/vessel-registration/pages/VesselOwnershipTransferReviewPage';
import { VesselRegistrationHeadDashboardPage } from '../features/vessel-registration-head/pages/VesselRegistrationHeadDashboardPage';
import { FreightForwarderLicenseQueuePage } from '../features/freight-forwarder-license/pages/FreightForwarderLicenseQueuePage';
import { FreightForwarderLicenseReviewPage } from '../features/freight-forwarder-license/pages/FreightForwarderLicenseReviewPage';
import { ShippingAgentLicenseQueuePage } from '../features/shipping-agent-license/pages/ShippingAgentLicenseQueuePage';
import { ShippingAgentLicenseReviewPage } from '../features/shipping-agent-license/pages/ShippingAgentLicenseReviewPage';
import { CombinedLicenseQueuePage } from '../features/combined-license/pages/CombinedLicenseQueuePage';
import { CombinedLicenseReviewPage } from '../features/combined-license/pages/CombinedLicenseReviewPage';
import { JointInvestmentLicenseQueuePage } from '../features/joint-investment-license/pages/JointInvestmentLicenseQueuePage';
import { JointInvestmentLicenseReviewPage } from '../features/joint-investment-license/pages/JointInvestmentLicenseReviewPage';
import { MtoLicenseQueuePage } from '../features/mto-license/pages/MtoLicenseQueuePage';
import { MtoLicenseReviewPage } from '../features/mto-license/pages/MtoLicenseReviewPage';
import { WaiverQueuePage } from '../features/waiver/pages/WaiverQueuePage';
import { WaiverReviewPage } from '../features/waiver/pages/WaiverReviewPage';
import { LogisticsHeadDashboardPage } from '../features/logistics-head/pages/LogisticsHeadDashboardPage';
const router = createBrowserRouter([
{
@@ -59,6 +72,7 @@ const router = createBrowserRouter([
{ index: true, element: <Navigate to="/dashboard" replace /> },
{ path: 'dashboard', element: <DashboardPage /> },
{ path: 'vessel-registration-head-dashboard', element: <VesselRegistrationHeadDashboardPage /> },
{ path: 'logistics-head-dashboard', element: <LogisticsHeadDashboardPage /> },
{ path: 'profile', element: <ProfilePage /> },
{ path: 'configuration', element: <ConfigurationPage /> },
{ path: 'locations', element: <LocationPage /> },
@@ -82,6 +96,18 @@ const router = createBrowserRouter([
{ path: 'vessel-registration-report', element: <VesselRegistrationReportPage /> },
{ path: 'vessel-ownership-transfer', element: <VesselOwnershipTransferQueuePage /> },
{ path: 'vessel-ownership-transfer/:id', element: <VesselOwnershipTransferReviewPage /> },
{ path: 'freight-forwarder-license', element: <FreightForwarderLicenseQueuePage /> },
{ path: 'freight-forwarder-license/:id', element: <FreightForwarderLicenseReviewPage /> },
{ path: 'shipping-agent-license', element: <ShippingAgentLicenseQueuePage /> },
{ path: 'shipping-agent-license/:id', element: <ShippingAgentLicenseReviewPage /> },
{ path: 'combined-license', element: <CombinedLicenseQueuePage /> },
{ path: 'combined-license/:id', element: <CombinedLicenseReviewPage /> },
{ path: 'joint-investment-license', element: <JointInvestmentLicenseQueuePage /> },
{ path: 'joint-investment-license/:id', element: <JointInvestmentLicenseReviewPage /> },
{ path: 'mto-license', element: <MtoLicenseQueuePage /> },
{ path: 'mto-license/:id', element: <MtoLicenseReviewPage /> },
{ path: 'waiver', element: <WaiverQueuePage /> },
{ path: 'waiver/:id', element: <WaiverReviewPage /> },
],
},
],