- {_(
- "Structure of the new system, including disks to use and additional devices like LVM volume groups.",
- )}
-
-
-
-
-
- {_("Encryption")}}
- >
-
-
-
-
- {_("Boot options")}}
- >
-
-
-
-
-
-
-
- >
- )}
+ {!configIssues.length && !proposal && }
+ {!!configIssues.length && }
+ {!model && }
+ {model && }
{proposal && }
);
@@ -300,10 +300,6 @@ function ProposalSections(): React.ReactNode {
* and test them individually. The proposal page should simply mount all those components.
*/
export default function ProposalPage(): React.ReactNode {
- const model = useStorageModel();
- const availableDevices = useAvailableDevices();
- const proposal = useProposal();
- const configIssues = useConfigIssues();
const progress = useProgress("storage");
const navigate = useNavigate();
const location = useLocation();
@@ -324,18 +320,6 @@ export default function ProposalPage(): React.ReactNode {
}
}, [resetNeeded, setUiState]);
- const fixable = [
- "configNoRoot",
- "configRequiredPaths",
- "configOverusedPvTarget",
- "configOverusedMdMember",
- ];
- const unfixableIssues = configIssues.filter((e) => !fixable.includes(e.class));
- const isModelEditable = model && !unfixableIssues.length;
- const hasDevices = !!availableDevices.length;
- const hasResult = !!proposal;
- const showSections = hasDevices && (isModelEditable || hasResult);
-
if (resetNeeded) return;
return (
@@ -352,8 +336,7 @@ export default function ProposalPage(): React.ReactNode {
- {!showSections && }
- {showSections && }
+
);
diff --git a/web/src/hooks/storage/issue.ts b/web/src/hooks/storage/issue.ts
deleted file mode 100644
index fd6fb7660f..0000000000
--- a/web/src/hooks/storage/issue.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) [2025] SUSE LLC
- *
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, contact SUSE LLC.
- *
- * To contact SUSE LLC about this file by physical or electronic mail, you may
- * find current contact information at www.suse.com.
- */
-
-import { useSuspenseQuery } from "@tanstack/react-query";
-import { issuesQuery } from "~/hooks/api/issue";
-import type { Issue } from "~/api/issue";
-
-function selectIssues(issues: Issue[]) {
- return issues.filter((i: Issue) => i.scope === "storage" && i.class !== "proposal");
-}
-
-function useConfigIssues(): Issue[] {
- const { data } = useSuspenseQuery({
- ...issuesQuery,
- select: selectIssues,
- });
- return data;
-}
-
-export { useConfigIssues };