feat: implement vessel ownership transfer feature with navigation updates and localization

This commit is contained in:
estifanos
2026-08-11 08:18:40 +00:00
parent ce802af366
commit 71c55e8da8
7 changed files with 14 additions and 47 deletions

View File

@@ -1,5 +1,6 @@
import {
IconAnchor,
IconArrowsExchange,
IconFileDescription,
IconId,
IconShip,
@@ -89,6 +90,13 @@ const PRESENTATION: Record<string, LicenseTypePresentation> = {
icon: IconAnchor,
detailSections: DEFAULT_SECTIONS,
},
VESSEL_OWNERSHIP_TRANSFER: {
key: 'VESSEL_OWNERSHIP_TRANSFER',
icon: IconArrowsExchange,
// Transfers an existing registration between owners: no company entity,
// no capital threshold, no staff roles.
detailSections: ['overview', 'documents'],
},
};
/** Falls back to a generic presentation so an unseeded type still renders. */

View File

@@ -1,21 +0,0 @@
import { Container } from '@mantine/core';
import { FeatureUnavailable } from '@ema-platform/ui';
/**
* Placeholder until this feature has a backend.
*
* This page previously rendered hardcoded sample records, which were
* indistinguishable from real ones.
*/
export function VesselOwnershipTransferQueuePage() {
return (
<Container size="lg" py="xl">
<FeatureUnavailable
title="Ownership transfer queue"
description="Vessel ownership transfer is not connected to the backend yet."
/>
</Container>
);
}
export default VesselOwnershipTransferQueuePage;

View File

@@ -1,21 +0,0 @@
import { Container } from '@mantine/core';
import { FeatureUnavailable } from '@ema-platform/ui';
/**
* Placeholder until this feature has a backend.
*
* This page previously rendered hardcoded sample records, which were
* indistinguishable from real ones.
*/
export function VesselOwnershipTransferReviewPage() {
return (
<Container size="lg" py="xl">
<FeatureUnavailable
title="Ownership transfer review"
description="Vessel ownership transfer is not connected to the backend yet."
/>
</Container>
);
}
export default VesselOwnershipTransferReviewPage;

View File

@@ -37,6 +37,7 @@ export const am: Translations = {
typeJointInvestment: "የጋራ ኢንቨስትመንት",
typeMto: "የብዝሃ-ሁነታ ትራንስፖርት አንቀሳቃሽ",
typeSEAFARER_REGISTRATION: "የመርከበኞች ምዝገባ",
typeVESSEL_OWNERSHIP_TRANSFER: "የመርከብ ባለቤትነት ዝውውር",
primary: "ዋና",
destinations: "ወደ",
noResults: "ምንም አልተገኘም",

View File

@@ -35,6 +35,7 @@ export const en = {
typeJointInvestment: 'Joint Investment',
typeMto: 'Multimodal Transport Operator',
typeSEAFARER_REGISTRATION: 'Seafarer Registration',
typeVESSEL_OWNERSHIP_TRANSFER: 'Vessel Ownership Transfer',
primary: 'Primary',
destinations: 'Go to',
noResults: 'Nothing found',

View File

@@ -1,5 +1,6 @@
import {
IconAnchor,
IconArrowsExchange,
IconBook2,
IconChartBar,
IconClipboardList,
@@ -123,7 +124,7 @@ export const NAV_SECTIONS: NavSection[] = [
items: [
{ to: '/licence-review/type/VESSEL_REGISTRATION', label: 'nav.vesselRegistrationApplicationQueue', icon: IconAnchor },
{ to: '/vessel-registration-queue', label: 'nav.vesselRegistrationQueue', icon: IconAnchor },
{ to: '/vessel-ownership-transfer', label: 'nav.ownershipTransferQueue', icon: IconFileDescription, soon: true },
{ to: '/licence-review/type/VESSEL_OWNERSHIP_TRANSFER', label: 'nav.ownershipTransferQueue', icon: IconArrowsExchange },
{ to: '/vessel-registration-queue/new', label: 'nav.vesselFormBuilder', icon: IconFilePlus, soon: true },
{ to: '/vessel-registration-report', label: 'nav.vesselRegistrationReport', icon: IconChartBar, soon: true },
{ to: '/vessel-registration-head-dashboard', label: 'nav.vesselRegistrationHeadDashboard', icon: IconGauge, soon: true },

View File

@@ -34,8 +34,6 @@ import { VesselRegistrationQueuePage } from '../features/vessel-registration/pag
import { VesselRegistrationReviewPage } from '../features/vessel-registration/pages/VesselRegistrationReviewPage';
import { VesselRegistrationReportPage } from '../features/vessel-registration/pages/VesselRegistrationReportPage';
import { VesselRegistrationFormBuilderPage } from '../features/vessel-registration/pages/VesselRegistrationFormBuilderPage';
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 { LicenseQueuePage } from '../features/license-review/pages/LicenseQueuePage';
import { LicenseRegisterPage } from '../features/license-register/pages/LicenseRegisterPage';
@@ -90,8 +88,8 @@ const router = createBrowserRouter([
{ path: 'vessel-registration-queue/new', element: <VesselRegistrationFormBuilderPage /> },
// { path: 'vessel-registration-queue/:id', element: <VesselRegistrationReviewPage /> },
//{ path: 'vessel-registration-report', element: <VesselRegistrationReportPage /> },
{ path: 'vessel-ownership-transfer', element: <VesselOwnershipTransferQueuePage /> },
{ path: 'vessel-ownership-transfer/:id', element: <VesselOwnershipTransferReviewPage /> },
{ path: 'vessel-ownership-transfer', element: <Navigate to="/licence-review/type/VESSEL_OWNERSHIP_TRANSFER" replace /> },
{ path: 'vessel-ownership-transfer/:id', element: <Navigate to="/licence-review" replace /> },
// Config-driven review workspace, shared by every licence type.
{ path: 'certificate-designer', element: <CertificateDesignerPage /> },
{ path: 'licence-review', element: <LicenseQueuePage /> },