debian-image-builder-frontend/src/Router.tsx
2025-08-05 13:56:59 +00:00

62 lines
1.6 KiB
TypeScript

import React, { lazy, Suspense } from 'react';
import { Route, Routes } from 'react-router-dom';
import { CloudProviderConfig } from './Components/CloudProviderConfig/CloudProviderConfig';
import ShareImageModal from './Components/ShareImageModal/ShareImageModal';
import { useFlagWithEphemDefault } from './Utilities/useGetEnvironment';
const LandingPage = lazy(() => import('./Components/LandingPage/LandingPage'));
const ImportImageWizard = lazy(
() => import('./Components/CreateImageWizard/ImportImageWizard'),
);
const CreateImageWizard = lazy(() => import('./Components/CreateImageWizard'));
export const Router = () => {
const importExportFlag = useFlagWithEphemDefault(
'image-builder.import.enabled',
);
return (
<Routes>
<Route
path='*'
element={
<Suspense>
<LandingPage />
</Suspense>
}
>
<Route path='share/:composeId' element={<ShareImageModal />} />
</Route>
{importExportFlag && (
<Route
path='imagewizard/import'
element={
<Suspense>
<ImportImageWizard />
</Suspense>
}
/>
)}
<Route
path='imagewizard/:composeId?'
element={
<Suspense>
<CreateImageWizard />
</Suspense>
}
/>
{process.env.IS_ON_PREMISE && (
<Route
path={'/cloud-provider-config'}
element={
<Suspense>
<CloudProviderConfig />
</Suspense>
}
/>
)}
</Routes>
);
};