mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-26 19:12:50 +00:00
feat(ApplicationRedirectPage): add page to resolve deep links for applications
fix(LicenseQueuePage): correct sorting logic for "mine" view
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { Center, Loader } from '@mantine/core';
|
||||
import { Navigate, useParams } from 'react-router-dom';
|
||||
import { useGetApplicationQuery } from '@ema-platform/api';
|
||||
|
||||
/**
|
||||
* Resolves `/applications/:applicationId` deep links (notification
|
||||
* callbackUrl, emails) to the canonical `/licensing/:typeCode/applications/:id`
|
||||
* route, which needs the licence type key to load its config.
|
||||
*/
|
||||
export function ApplicationRedirectPage() {
|
||||
const { applicationId } = useParams();
|
||||
const { data, isLoading, isError } = useGetApplicationQuery(applicationId!, {
|
||||
skip: !applicationId,
|
||||
});
|
||||
|
||||
if (!applicationId || isError) {
|
||||
return <Navigate replace to="/licensing/applications" />;
|
||||
}
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<Center h={300}>
|
||||
<Loader />
|
||||
</Center>
|
||||
);
|
||||
}
|
||||
|
||||
const typeCode = data?.application.licenseType?.key ?? 'FREIGHT_FORWARDER';
|
||||
return <Navigate replace to={`/licensing/${typeCode}/applications/${applicationId}`} />;
|
||||
}
|
||||
|
||||
export default ApplicationRedirectPage;
|
||||
@@ -42,6 +42,7 @@ import { PaymentCheckPage } from './features/payments/pages/PaymentCheckPage';
|
||||
import { PaymentSuccessPage } from './features/payments/pages/PaymentSuccessPage';
|
||||
import { PaymentFailurePage } from './features/payments/pages/PaymentFailurePage';
|
||||
import { LicenseApplicationPage } from './features/licensing/pages/LicenseApplicationPage';
|
||||
import { ApplicationRedirectPage } from './features/licensing/pages/ApplicationRedirectPage';
|
||||
import { WaiverPage } from './features/waiver/pages/WaiverPage';
|
||||
|
||||
|
||||
@@ -98,6 +99,9 @@ export const router = createBrowserRouter([
|
||||
path: '/licensing/:typeCode/applications/:applicationId',
|
||||
element: <LicenseApplicationPage />,
|
||||
},
|
||||
// Notification / email deep links arrive as /applications/<id>; resolve the
|
||||
// licence type and forward to the canonical route.
|
||||
{ path: '/applications/:applicationId', element: <ApplicationRedirectPage /> },
|
||||
|
||||
// Seafarer
|
||||
{ path: '/seafarer-registration', element: <SeafarerRegistrationPage /> },
|
||||
|
||||
Reference in New Issue
Block a user