From 4ce48d02882ec545e07a4829107aa4ff8aec5c38 Mon Sep 17 00:00:00 2001 From: Pjero Nizetic Date: Tue, 12 Dec 2023 12:23:44 +0100 Subject: [PATCH] New initial flow --- src/common/assets/create.png | Bin 0 -> 8976 bytes src/common/assets/view.png | Bin 0 -> 98896 bytes src/common/constants.js | 4 + src/common/translations/en.js | 3 + .../bread-crumb-nav/bread-crumb-nav.js | 2 +- .../bread-crumb-nav/bread-crumb-nav.style.js | 2 +- src/components/route/route.js | 3 + src/pages/conversions/index.js | 14 +- src/pages/create-manifest/FileUploader.js | 83 -- .../create-manifest.test.js.snap | 788 ++++++++++-------- src/pages/create-manifest/create-manifest.js | 64 +- .../create-manifest/create-manifest.test.js | 17 +- src/pages/create-manifest/file-field.js | 6 +- src/pages/initiial/index.js | 73 ++ src/pages/initiial/view-conversions.js | 127 +++ src/pages/routes.js | 12 + 16 files changed, 691 insertions(+), 507 deletions(-) create mode 100644 src/common/assets/create.png create mode 100644 src/common/assets/view.png delete mode 100644 src/pages/create-manifest/FileUploader.js create mode 100644 src/pages/initiial/index.js create mode 100644 src/pages/initiial/view-conversions.js diff --git a/src/common/assets/create.png b/src/common/assets/create.png new file mode 100644 index 0000000000000000000000000000000000000000..4990e1da52cc9ef675d9e51d0d341b4667e19a79 GIT binary patch literal 8976 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 { const { t } = useTranslation(); diff --git a/src/components/bread-crumb-nav/bread-crumb-nav.style.js b/src/components/bread-crumb-nav/bread-crumb-nav.style.js index a90bba2..1403fe6 100644 --- a/src/components/bread-crumb-nav/bread-crumb-nav.style.js +++ b/src/components/bread-crumb-nav/bread-crumb-nav.style.js @@ -1,7 +1,7 @@ import { color, fontSize, fontWeight } from 'common/styles'; export const breadcrumbStyle = { - root: { margin: '0.625rem 0px' }, + root: { margin: '0.625rem 0px', lineHeight: '1rem' }, itemLink: { color: color.accent.primary, fontSize: fontSize.md, diff --git a/src/components/route/route.js b/src/components/route/route.js index cfcf3a4..7984a8f 100644 --- a/src/components/route/route.js +++ b/src/components/route/route.js @@ -15,6 +15,8 @@ import { footerPadding, routeStyle } from './route.style'; const responseStoreSelector = s => s.lroStatus; const userStoreSelector = s => s.subscriptionKey; +const openRoutes = [PATHS.INDEX, PATHS.CREATE_UPLOAD, PATHS.VIEW_CONVERSIONS]; + const Route = ({ title, component: Component, dataRequired }) => { const { t } = useTranslation(); const navigate = useNavigate(); @@ -28,6 +30,7 @@ const Route = ({ title, component: Component, dataRequired }) => { }, [currentPath]); useEffect(() => { + if (openRoutes.includes(currentPath)) return; // Redirect to index if there is no subscription key if (!subKey) navigate(PATHS.INDEX, { replace: true }); }, [navigate, currentPath, subKey]); diff --git a/src/pages/conversions/index.js b/src/pages/conversions/index.js index 796df10..7806720 100644 --- a/src/pages/conversions/index.js +++ b/src/pages/conversions/index.js @@ -1,5 +1,5 @@ import { Spinner, SpinnerSize, TextField } from '@fluentui/react'; -import { DetailsList, DetailsListLayoutMode, DetailsRow } from '@fluentui/react/lib/DetailsList'; +import { DetailsList, DetailsListLayoutMode, DetailsRow, SelectionMode } from '@fluentui/react/lib/DetailsList'; import { PATHS } from 'common'; import { getExistingConversions } from 'common/api/conversions'; import { useConversionPastStore } from 'common/store/conversion-past.store'; @@ -146,7 +146,12 @@ const Conversions = () => { tilesetStatus: ongoingConversion.tilesetStepStatus, created: ongoingConversion.tilesetDate, }, - date: new Date(ongoingConversion.tilesetDate ?? ongoingConversion.uploadStartTime), + date: new Date( + ongoingConversion.tilesetDate ?? + ongoingConversion.datasetDate ?? + ongoingConversion.conversionDate ?? + ongoingConversion.uploadStartTime + ), }); } @@ -192,7 +197,7 @@ const Conversions = () => { }, }; }) - .filter(item => item.description.includes(descriptionFilter)) + .filter(item => item.description.toLowerCase().includes(descriptionFilter.toLowerCase())) .sort((a, b) => { if (a[sorting.fieldName] < b[sorting.fieldName]) { return sorting.descending ? 1 : -1; @@ -232,8 +237,9 @@ const Conversions = () => { styles={{ root: { fontSize: '0.875rem', cursor: 'pointer' } }} /> )} + onShouldVirtualize={() => false} layoutMode={DetailsListLayoutMode.justified} - selectionMode={0} + selectionMode={SelectionMode.none} /> ); diff --git a/src/pages/create-manifest/FileUploader.js b/src/pages/create-manifest/FileUploader.js deleted file mode 100644 index 78f3c95..0000000 --- a/src/pages/create-manifest/FileUploader.js +++ /dev/null @@ -1,83 +0,0 @@ -import { useCallback, useState } from 'react'; -import { useTranslation } from 'react-i18next'; -import { TEST_ID } from './create-manifest'; -import { browseButtonContentStyle, fileInputStyle, selectFileButtonClassName } from './create-manifest.style'; - -const errors = { - fileSizeExceeded: 'error.file.size.exceeded', - fileTypeIncorrect: 'error.file.type.incorrect', -}; - -const maxFileSize = 1024 * 1024 * 100; // 100 MB -const fileTypes = { - zip: ['application/x-zip', 'application/x-zip-compressed', 'application/zip', 'application/zip-compressed'], - json: ['application/json'], -}; - -const FileUploader = ({ id, onFileSelect, fileType, onError }) => { - const { t } = useTranslation(); - const [filename, setFilename] = useState(''); - - const onTextFieldClick = useCallback(() => { - document.getElementById(id).click(); - }, [id]); - - const pickFile = useCallback( - e => { - const { files } = e.target; - - if (files.length === 0) { - // the only way to upload no files is to click Cancel button in browse menu, so no action required. - return; - } - - const { name, size, type } = files[0]; - - if (size > maxFileSize) { - setFilename(''); - onFileSelect(null); - onError(t(errors.fileSizeExceeded)); - return; - } - if (!fileTypes[fileType].includes(type)) { - setFilename(''); - onFileSelect(null); - onError(t(errors.fileTypeIncorrect, { type: fileType.toUpperCase() })); - return; - } - - setFilename(name); - onFileSelect(files[0]); - }, - [fileType, onError, onFileSelect, setFilename, t] - ); - - return ( -

- {filename && ( -
- {filename} -
- )} - {!filename && ( - - )} - -
- ); -}; - -export default FileUploader; diff --git a/src/pages/create-manifest/__snapshots__/create-manifest.test.js.snap b/src/pages/create-manifest/__snapshots__/create-manifest.test.js.snap index 7749ccc..7d929d7 100644 --- a/src/pages/create-manifest/__snapshots__/create-manifest.test.js.snap +++ b/src/pages/create-manifest/__snapshots__/create-manifest.test.js.snap @@ -134,32 +134,13 @@ Object { width: 100%; } -.emotion-18 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - background-color: #ffffff; - box-shadow: rgba(0, 0, 0, 0.14) 0px 2px 4px; - padding: 0.75rem; - height: 110px; - border-radius: 4px; -} - -.emotion-20 { +.emotion-24 { outline: transparent; position: relative; font-size: 0.875rem; font-weight: 400; box-sizing: border-box; - border: 1px solid rgb(0, 120, 212); + border: 1px solid rgb(138, 136, 134); display: inline-block; -webkit-text-decoration: none; text-decoration: none; @@ -169,21 +150,21 @@ Object { border-radius: 2px; min-width: 5rem; height: 1.5rem; - background-color: rgb(0, 120, 212); - color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); + color: rgb(50, 49, 48); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; + margin-left: 1rem; } -.emotion-20:hover { - background-color: rgb(16, 110, 190); - border: 1px solid rgb(16, 110, 190); - color: rgb(255, 255, 255); +.emotion-24:hover { + background-color: rgb(243, 242, 241); + color: rgb(32, 31, 30); } -.emotion-21 { +.emotion-25 { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -204,10 +185,16 @@ Object { font-weight: 600; } -.emotion-22 { +.emotion-26 { display: none; } +.emotion-27 { + height: 1.5rem; + line-height: 1.5rem; + font-size: 0.813rem; +} +
-
-

- Existing conversions -

-
- View all your existing conversions -
+
+ dwg.zip.package
-
- -
+  + + +
+
-
-

- New conversion -

-
- Start by uploading your DWG files -
-
-
-
-
+ +
+
, @@ -641,32 +658,13 @@ Object { width: 100%; } -.emotion-18 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - background-color: #ffffff; - box-shadow: rgba(0, 0, 0, 0.14) 0px 2px 4px; - padding: 0.75rem; - height: 110px; - border-radius: 4px; -} - -.emotion-20 { +.emotion-24 { outline: transparent; position: relative; font-size: 0.875rem; font-weight: 400; box-sizing: border-box; - border: 1px solid rgb(0, 120, 212); + border: 1px solid rgb(138, 136, 134); display: inline-block; -webkit-text-decoration: none; text-decoration: none; @@ -676,21 +674,21 @@ Object { border-radius: 2px; min-width: 5rem; height: 1.5rem; - background-color: rgb(0, 120, 212); - color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); + color: rgb(50, 49, 48); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; + margin-left: 1rem; } -.emotion-20:hover { - background-color: rgb(16, 110, 190); - border: 1px solid rgb(16, 110, 190); - color: rgb(255, 255, 255); +.emotion-24:hover { + background-color: rgb(243, 242, 241); + color: rgb(32, 31, 30); } -.emotion-21 { +.emotion-25 { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -711,10 +709,16 @@ Object { font-weight: 600; } -.emotion-22 { +.emotion-26 { display: none; } +.emotion-27 { + height: 1.5rem; + line-height: 1.5rem; + font-size: 0.813rem; +} +
-
-

- Existing conversions -

-
- View all your existing conversions -
+
+ dwg.zip.package
-
- -
+  + + +
+
-
-

- New conversion -

-
- Start by uploading your DWG files -
-
-
-
-
+ +
+
, "debug": [Function], @@ -1203,32 +1237,13 @@ Object { width: 100%; } -.emotion-18 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - background-color: #ffffff; - box-shadow: rgba(0, 0, 0, 0.14) 0px 2px 4px; - padding: 0.75rem; - height: 110px; - border-radius: 4px; -} - -.emotion-20 { +.emotion-24 { outline: transparent; position: relative; font-size: 0.875rem; font-weight: 400; box-sizing: border-box; - border: 1px solid rgb(0, 120, 212); + border: 1px solid rgb(138, 136, 134); display: inline-block; -webkit-text-decoration: none; text-decoration: none; @@ -1238,21 +1253,21 @@ Object { border-radius: 2px; min-width: 5rem; height: 1.5rem; - background-color: rgb(0, 120, 212); - color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); + color: rgb(50, 49, 48); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; + margin-left: 1rem; } -.emotion-20:hover { - background-color: rgb(16, 110, 190); - border: 1px solid rgb(16, 110, 190); - color: rgb(255, 255, 255); +.emotion-24:hover { + background-color: rgb(243, 242, 241); + color: rgb(32, 31, 30); } -.emotion-21 { +.emotion-25 { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -1273,17 +1288,23 @@ Object { font-weight: 600; } -.emotion-22 { +.emotion-26 { display: none; } +.emotion-27 { + height: 1.5rem; + line-height: 1.5rem; + font-size: 0.813rem; +} +
@@ -1305,7 +1326,7 @@ Object { , @@ -1708,32 +1761,13 @@ Object { width: 100%; } -.emotion-18 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - justify-content: space-between; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - background-color: #ffffff; - box-shadow: rgba(0, 0, 0, 0.14) 0px 2px 4px; - padding: 0.75rem; - height: 110px; - border-radius: 4px; -} - -.emotion-20 { +.emotion-24 { outline: transparent; position: relative; font-size: 0.875rem; font-weight: 400; box-sizing: border-box; - border: 1px solid rgb(0, 120, 212); + border: 1px solid rgb(138, 136, 134); display: inline-block; -webkit-text-decoration: none; text-decoration: none; @@ -1743,21 +1777,21 @@ Object { border-radius: 2px; min-width: 5rem; height: 1.5rem; - background-color: rgb(0, 120, 212); - color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); + color: rgb(50, 49, 48); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; + margin-left: 1rem; } -.emotion-20:hover { - background-color: rgb(16, 110, 190); - border: 1px solid rgb(16, 110, 190); - color: rgb(255, 255, 255); +.emotion-24:hover { + background-color: rgb(243, 242, 241); + color: rgb(32, 31, 30); } -.emotion-21 { +.emotion-25 { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -1778,16 +1812,22 @@ Object { font-weight: 600; } -.emotion-22 { +.emotion-26 { display: none; } +.emotion-27 { + height: 1.5rem; + line-height: 1.5rem; + font-size: 0.813rem; +} +
@@ -1809,7 +1849,7 @@ Object { , "debug": [Function], diff --git a/src/pages/create-manifest/create-manifest.js b/src/pages/create-manifest/create-manifest.js index 8b898fd..a0b31a9 100644 --- a/src/pages/create-manifest/create-manifest.js +++ b/src/pages/create-manifest/create-manifest.js @@ -1,5 +1,5 @@ import { cx } from '@emotion/css'; -import { DefaultButton, MessageBar, MessageBarType, PrimaryButton, TextField } from '@fluentui/react'; +import { MessageBar, MessageBarType, PrimaryButton, TextField } from '@fluentui/react'; import { PATHS } from 'common'; import { getEnvs } from 'common/functions'; import { useResponseStore, useUserStore } from 'common/store'; @@ -9,9 +9,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; import { shallow } from 'zustand/shallow'; -import FileUploader from './FileUploader'; import { - actionPanelStyle, containerStyle, descriptionStyle, dropdownStyle, @@ -25,6 +23,7 @@ import { primaryButtonStyle, textFieldStyle, } from './create-manifest.style'; +import FileField from './file-field'; export const TEST_ID = { ERROR_BAR: 'error-bar', @@ -132,49 +131,22 @@ const CreateManifestPage = () => { />
-
-
-
-

Existing conversions

-
View all your existing conversions
-
-
- navigate(PATHS.CONVERSIONS)} - disabled={!subKey} - style={{ height: '1.5rem' }} - text="View" - /> -
-
-
-
-

New conversion

-
Start by uploading your DWG files
-
-
- - {file && ( - - )} -
-
-
+ +
); }; diff --git a/src/pages/create-manifest/create-manifest.test.js b/src/pages/create-manifest/create-manifest.test.js index 4ef6228..5a4a382 100644 --- a/src/pages/create-manifest/create-manifest.test.js +++ b/src/pages/create-manifest/create-manifest.test.js @@ -42,13 +42,14 @@ describe('CreateManifestPage', () => { expect(uploadFileSpy).not.toHaveBeenCalled(); render(); const fileInput = screen.getByTestId(TEST_ID.FILE_UPLOAD_FIELD); + const uploadButton = screen.getByTestId(TEST_ID.UPLOAD_BUTTON); const subKeyTextField = screen.getByTestId(TEST_ID.SUBSCRIPTION_KEY_FIELD); fireEvent.change(fileInput, { target: { files: [file] }, }); - expect(screen.getByTestId(TEST_ID.FILE_NAME_FIELD).textContent).toBe(file.name); + expect(screen.getAllByTestId(TEST_ID.FILE_NAME_FIELD)[0].value).toBe(file.name); expect(screen.queryByText('error.file.size.exceeded')).toBeNull(); expect(screen.queryByText('error.file.type.incorrect')).toBeNull(); @@ -57,8 +58,6 @@ describe('CreateManifestPage', () => { value: 'Sonic the Hedgehog isnt his fullname', }, }); - - const uploadButton = screen.getByTestId(TEST_ID.UPLOAD_BUTTON); fireEvent.click(uploadButton); expect(uploadFileSpy).toBeCalledWith(file); @@ -75,10 +74,8 @@ describe('CreateManifestPage', () => { await flushPromises(); - const errorMessage = await screen.findByText('error.file.size.exceeded'); - - expect(errorMessage).toBeInTheDocument(); - expect(screen.queryByTestId(TEST_ID.FILE_NAME_FIELD)).toBeNull(); + expect(screen.getByTestId(TEST_ID.ERROR_BAR)).toBeInTheDocument(); + expect(screen.getAllByTestId(TEST_ID.FILE_NAME_FIELD)[0].value).toBe(''); }); it('should show an error when the file is not zip', async () => { @@ -92,10 +89,8 @@ describe('CreateManifestPage', () => { await flushPromises(); - const errorMessage = await screen.findByText('error.file.type.incorrect'); - - expect(errorMessage).toBeInTheDocument(); - expect(screen.queryByTestId(TEST_ID.FILE_NAME_FIELD)).toBeNull(); + expect(screen.getByTestId(TEST_ID.ERROR_BAR)).toBeInTheDocument(); + expect(screen.getAllByTestId(TEST_ID.FILE_NAME_FIELD)[0].value).toBe(''); }); it('should pick different geographies', async () => { diff --git a/src/pages/create-manifest/file-field.js b/src/pages/create-manifest/file-field.js index f9ee271..f2b628a 100644 --- a/src/pages/create-manifest/file-field.js +++ b/src/pages/create-manifest/file-field.js @@ -1,9 +1,9 @@ import { TextField } from '@fluentui/react'; +import FieldLabel from 'components/field-label'; import PropTypes from 'prop-types'; import { useCallback, useState } from 'react'; import { useTranslation } from 'react-i18next'; - -import FieldLabel from 'components/field-label'; +import { TEST_ID } from './create-manifest'; import { browseButtonContentStyle, browseButtonStyle, @@ -79,7 +79,7 @@ const FileField = ({ id, label, onFileSelect, fileType, onError, tooltip }) => { { + const { image, title, children } = props; + return ( +
+ card +

{title}

+
{children}
+
+ ); +}; + +const InitialView = () => { + const { t } = useTranslation(); + const navigate = useNavigate(); + + const handleCreateButtonClick = () => navigate(PATHS.CREATE_UPLOAD); + const handleViewButtonClick = () => navigate(PATHS.VIEW_CONVERSIONS); + + return ( +
+
+

Azure Maps Creator

+

{t('initial.description')}

+
+
+ +

{t('create.description')}

+ +
+ +

{t('view.existing.conversions')}

+ +
+
+
+ ); +}; + +export default InitialView; diff --git a/src/pages/initiial/view-conversions.js b/src/pages/initiial/view-conversions.js new file mode 100644 index 0000000..0278687 --- /dev/null +++ b/src/pages/initiial/view-conversions.js @@ -0,0 +1,127 @@ +import { cx } from '@emotion/css'; +import { MessageBar, MessageBarType, PrimaryButton, TextField } from '@fluentui/react'; +import { PATHS } from 'common'; +import { getEnvs } from 'common/functions'; +import { useResponseStore, useUserStore } from 'common/store'; +import Dropdown from 'components/dropdown'; +import FieldLabel from 'components/field-label'; +import { + containerStyle, + dropdownStyle, + errorBannerHidden, + errorBannerStyle, + fieldStyle, + formRowStyle, + headerStyle, + inputStyles, + textFieldStyle, +} from 'pages/create-manifest/create-manifest.style'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { useNavigate } from 'react-router-dom'; +import { shallow } from 'zustand/shallow'; + +export const TEST_ID = { + ERROR_BAR: 'error-bar', + FILE_NAME_FIELD: 'file-name-field', + FILE_UPLOAD_FIELD: 'file-upload-field', + MANIFEST_UPLOAD_FIELD: 'manifest-upload-field', + SUBSCRIPTION_KEY_FIELD: 'subscription-key-field', + UPLOAD_BUTTON: 'upload-button', +}; + +const userStoreSelector = s => [s.setGeography, s.geography, s.setSubscriptionKey, s.subscriptionKey]; +const responseStoreSelector = s => [s.acknowledgeError, s.errorMessage]; + +const ViewConversions = () => { + const { t } = useTranslation(); + const navigate = useNavigate(); + + const [errorMessage, setErrorMessage] = useState(''); + + const [setGeo, geo, setSubKey, subKey] = useUserStore(userStoreSelector, shallow); + const [acknowledgeApiError, apiErrorMessage] = useResponseStore(responseStoreSelector, shallow); + + const environmentOptions = useMemo( + () => + Object.keys(getEnvs()).map(geography => ({ + key: geography, + text: t(getEnvs()[geography].TEXT), + })), + [t] + ); + + useEffect(() => acknowledgeApiError, []); // eslint-disable-line react-hooks/exhaustive-deps + + useEffect(() => { + if (apiErrorMessage) { + setErrorMessage(apiErrorMessage); + } + }, [apiErrorMessage]); + + const updateSubKey = useCallback(e => setSubKey(e.target.value), [setSubKey]); + const updateGeo = useCallback( + (_, option) => { + setGeo(option.optionValue); + localStorage.setItem('geography', option.optionValue); + }, + [setGeo] + ); + + return ( +
+ setErrorMessage('')} + dismissButtonAriaLabel={t('close')} + data-testid={TEST_ID.ERROR_BAR} + > + {errorMessage} + +

View existing conversions

+
+ {t('geography')} +
+ + {t(getEnvs()[geo].TEXT)} + +
+
+
+ + {t('subscription.key')} + +
+ +
+
+ + navigate(PATHS.CONVERSIONS)} + disabled={!subKey} + style={{ height: '1.5rem' }} + text="View" + /> +
+ ); +}; + +export default ViewConversions; diff --git a/src/pages/routes.js b/src/pages/routes.js index d6f1cf0..792bb3c 100644 --- a/src/pages/routes.js +++ b/src/pages/routes.js @@ -7,6 +7,8 @@ import PastConversion from './conversion/past-conversion'; import Conversions from './conversions'; import CreateManifestPage from './create-manifest'; import Georeference from './georeference'; +import InitialView from './initiial'; +import ViewConversions from './initiial/view-conversions'; import Layers from './layers'; import Levels from './levels'; import ProcessingPage from './processing'; @@ -16,8 +18,18 @@ export const routes = [ { path: PATHS.INDEX, name: ROUTE_NAME_BY_PATH[PATHS.INDEX], + element: , + }, + { + path: PATHS.CREATE_UPLOAD, + name: ROUTE_NAME_BY_PATH[PATHS.CREATE_UPLOAD], element: , }, + { + path: PATHS.VIEW_CONVERSIONS, + name: ROUTE_NAME_BY_PATH[PATHS.VIEW_CONVERSIONS], + element: , + }, { path: PATHS.PROCESSING, name: ROUTE_NAME_BY_PATH[PATHS.PROCESSING], element: }, { path: PATHS.CREATE_GEOREFERENCE,