diff --git a/web/src/components/overview/OverviewPage.jsx b/web/src/components/overview/OverviewPage.jsx index 68fcefb86e..29ea0a91bb 100644 --- a/web/src/components/overview/OverviewPage.jsx +++ b/web/src/components/overview/OverviewPage.jsx @@ -43,7 +43,7 @@ import SoftwareSection from "./SoftwareSection"; import { _ } from "~/i18n"; const SCOPE_HEADERS = { - user: _("Users"), + users: _("Users"), storage: _("Storage"), software: _("Software") }; diff --git a/web/src/components/overview/SoftwareSection.jsx b/web/src/components/overview/SoftwareSection.jsx index 0390de8f1b..69b7d9664c 100644 --- a/web/src/components/overview/SoftwareSection.jsx +++ b/web/src/components/overview/SoftwareSection.jsx @@ -54,23 +54,37 @@ export default function SoftwareSection() { return; } - // TRANSLATORS: %s will be replaced with the installation size, example: - // "5GiB". - const [msg1, msg2] = _("The installation will take %s including:").split("%s"); + const TextWithoutList = () => { + return ( + <> + {_("The installation will take")} {proposal.size} + + ); + }; + + const TextWithList = () => { + // TRANSLATORS: %s will be replaced with the installation size, example: "5GiB". + const [msg1, msg2] = _("The installation will take %s including:").split("%s"); + return ( + <> + + {msg1} + {proposal.size} + {msg2} + + + {selectedPatterns.map(p => ( + {p.summary} + ))} + + + ); + }; return ( {_("Software")} - - {msg1} - {`${proposal.size}`} - {msg2} - - - {selectedPatterns.map(p => ( - {p.summary} - ))} - + {selectedPatterns.length ? : } ); } diff --git a/web/src/components/product/ProductSelectionPage.jsx b/web/src/components/product/ProductSelectionPage.jsx index 13b0c0a595..ecbde0b74a 100644 --- a/web/src/components/product/ProductSelectionPage.jsx +++ b/web/src/components/product/ProductSelectionPage.jsx @@ -23,7 +23,7 @@ import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import { Card, CardBody, - Flex, FlexItem, + Flex, Form, Grid, GridItem, Radio @@ -46,7 +46,7 @@ function ProductSelectionPage() { const navigate = useNavigate(); const { manager, product } = useInstallerClient(); const { products, selectedProduct } = useProduct(); - const [nextProduct, setNextProduct] = useState(selectedProduct || products[0]); + const [nextProduct, setNextProduct] = useState(selectedProduct); const onSubmit = async (e) => { e.preventDefault(); @@ -72,50 +72,44 @@ function ProductSelectionPage() { ); }; + const isSelectionDisabled = !nextProduct || (nextProduct === selectedProduct); + return ( - <> - -
-
- - {products.map((product, index) => ( - - - - {product.name}} - body={product.description} - isChecked={nextProduct === product} - onChange={() => setNextProduct(product)} - /> - - - - ))} - - - - {selectedProduct && } - - - - {_("Select")} - - - - - -
-
-
- +
+
+ + {products.map((product, index) => ( + + + + {product.name}} + body={product.description} + isChecked={nextProduct === product} + onChange={() => setNextProduct(product)} + /> + + + + ))} + + + {selectedProduct && } + + {_("Select")} + + + + +
+
); } diff --git a/web/src/components/product/ProductSelectionProgress.jsx b/web/src/components/product/ProductSelectionProgress.jsx index cd3b3e5cff..f6cf185ecb 100644 --- a/web/src/components/product/ProductSelectionProgress.jsx +++ b/web/src/components/product/ProductSelectionProgress.jsx @@ -30,6 +30,7 @@ import { import { _ } from "~/i18n"; import { Center } from "~/components/layout"; +import SimpleLayout from "~/SimpleLayout"; import { useCancellablePromise } from "~/utils"; import { useInstallerClient } from "~/context/installer"; import { useProduct } from "~/context/product"; @@ -136,26 +137,28 @@ function ProductSelectionProgress() { }, [cancellablePromise, setSoftwareProgress, software]); return ( -
- - - - - -

- {_("Configuring the product, please wait ...")} -

- -
-
-
-
-
-
+ +
+ + + + + +

+ {_("Configuring the product, please wait ...")} +

+ +
+
+
+
+
+
+
); } diff --git a/web/src/components/product/routes.js b/web/src/components/product/routes.js index f01c84add6..902e25dbcc 100644 --- a/web/src/components/product/routes.js +++ b/web/src/components/product/routes.js @@ -20,37 +20,13 @@ */ import React from "react"; -import { Page } from "~/components/core"; import ProductSelectionPage from "./ProductSelectionPage"; -import ProductRegistrationPage from "./ProductRegistrationPage"; -import { _ } from "~/i18n"; -const registerRoute = { - path: "/product/register", - element: , - handle: { - name: _("Product registration"), - icon: "inventory_2", - hidden: true - }, - children: [ - { - index: true, - element: - } - ] -}; - -const selectionRoute = { - path: "/product/select", - element: , - handle: { - name: _("Product selection"), - icon: "inventory_2" - } +const productsRoute = { + path: "/products", + element: }; export { - registerRoute, - selectionRoute, + productsRoute }; diff --git a/web/src/router.js b/web/src/router.js index f2c91b5fd5..b3c4c2c86e 100644 --- a/web/src/router.js +++ b/web/src/router.js @@ -25,20 +25,16 @@ import App from "~/App"; import Protected from "~/Protected"; import MainLayout from "~/MainLayout"; import SimpleLayout from "./SimpleLayout"; -import { Page, LoginPage } from "~/components/core"; +import { LoginPage } from "~/components/core"; import { OverviewPage } from "~/components/overview"; -import { ProductRegistrationPage, ProductSelectionPage } from "~/components/product"; import { _ } from "~/i18n"; import overviewRoutes from "~/components/overview/routes"; import l10nRoutes from "~/components/l10n/routes"; import networkRoutes from "~/components/network/routes"; +import { productsRoute } from "~/components/product/routes"; import storageRoutes from "~/components/storage/routes"; import softwareRoutes from "~/components/software/routes"; import usersRoutes from "~/components/users/routes"; -import { - registerRoute as productRegistrationRoute, - selectionRoute as productSelectionRoute -} from "~/components/product/routes"; const rootRoutes = [ overviewRoutes, @@ -46,8 +42,7 @@ const rootRoutes = [ networkRoutes, storageRoutes, softwareRoutes, - usersRoutes, - productRegistrationRoute + usersRoutes ]; const protectedRoutes = [ @@ -67,13 +62,7 @@ const protectedRoutes = [ }, { element: , - children: [ - { - path: "products", - element: - }, - productSelectionRoute - ] + children: [productsRoute] } ] }