62 lines
1.6 KiB
TypeScript
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>
|
|
);
|
|
};
|