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;
