From 44786a2f6f47cfbb179f66220486248c941f52f6 Mon Sep 17 00:00:00 2001 From: estifanos Date: Sat, 8 Aug 2026 06:36:48 +0000 Subject: [PATCH] fixes --- .../pages/SeafarerRegistryPage.tsx | 158 +++++++----------- 1 file changed, 58 insertions(+), 100 deletions(-) diff --git a/apps/backoffice/src/app/features/seafarer-registry/pages/SeafarerRegistryPage.tsx b/apps/backoffice/src/app/features/seafarer-registry/pages/SeafarerRegistryPage.tsx index 9a9bb2ca2..7b6d1e481 100644 --- a/apps/backoffice/src/app/features/seafarer-registry/pages/SeafarerRegistryPage.tsx +++ b/apps/backoffice/src/app/features/seafarer-registry/pages/SeafarerRegistryPage.tsx @@ -24,7 +24,7 @@ import { IconShieldCog, IconStethoscope, } from '@tabler/icons-react'; -import { notify } from '@ema-platform/ui'; +import { AdvancedTable, notify, useServerTable, type AdvancedColumn } from '@ema-platform/ui'; import { extractErrorMessage, useApiQuery, @@ -355,14 +355,29 @@ export function SeafarerRegistryPage() { { header: 'Name', cell: ({ row }) => ( - + setDetail(row.original)} + > {[row.original.firstName, row.original.middleName, row.original.lastName].filter(Boolean).join(' ')} ), }, { - header: 'Profession', - cell: ({ row }) => {row.original.profession?.name?.en ?? '—'}, + header: 'Seafarer №', + cell: ({ row }) => {row.original.seafarerNumber ?? '—'}, + }, + { + header: 'Department', + cell: ({ row }) => ( + + {row.original.seafarerDepartment + ? DEPARTMENT_LABELS[row.original.seafarerDepartment] ?? row.original.seafarerDepartment + : '—'} + + ), }, { header: 'ID number', @@ -374,11 +389,33 @@ export function SeafarerRegistryPage() { }, { header: 'Status', - cell: ({ row }) => ( - - {row.original.isComplete ? 'Complete' : 'Incomplete'} - - ), + cell: ({ row }) => + row.original.seafarerNumber ? ( + + {row.original.seafarerStatus} + + ) : ( + + {row.original.isComplete ? 'Not registered' : 'Incomplete'} + + ), + }, + { + header: '', + label: 'Actions', + cell: ({ row }) => + row.original.seafarerNumber ? ( + + + + ) : null, }, ]; @@ -401,97 +438,18 @@ export function SeafarerRegistryPage() { - {isLoading ? ( -
- -
- ) : items.length === 0 ? ( -
- - {search ? 'No profiles match that search.' : 'No seafarers registered yet.'} - -
- ) : ( - - - - Name - Seafarer № - Department - ID number - Phone - Status - - - - - {items.map((p) => ( - setDetail(p)} - > - - - {[p.firstName, p.middleName, p.lastName].filter(Boolean).join(' ')} - - - - - {p.seafarerNumber ?? '—'} - - - - - {p.seafarerDepartment - ? DEPARTMENT_LABELS[p.seafarerDepartment] ?? p.seafarerDepartment - : '—'} - - - - - {p.address?.idNumber ?? '—'} - - - - - {p.address?.primaryPhoneNumber ?? '—'} - - - - {p.seafarerNumber ? ( - - {p.seafarerStatus} - - ) : ( - - {p.isComplete ? 'Not registered' : 'Incomplete'} - - )} - - e.stopPropagation()}> - {p.seafarerNumber && ( - - - - )} - - - ))} - -
- )} +
setDetail(null)} />