* Copyright (C) 2023 Red Hat, Inc.
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
import { useEffect, useState } from "react";
import { scenario as scenarioEraseAll } from "./erase-all/index.js";
import { scenario as scenarioMountPointMapping } from "./mount-point-mapping/index.js";
import { scenario as scenarioReinstallFedora } from "./reinstall-fedora/index.js";
import {
scenario as scenarioConfiguredStorage,
scenarioKickstart as scenarioConfiguredStorageKickstart,
} from "./use-configured-storage/index.js";
import { scenario as scenarioUseFreeSpace } from "./use-free-space/index.js";
export const useScenariosAvailability = () => {
const scenarioReinstallFedoraAvailability = scenarioReinstallFedora.getAvailability();
const scenarioUseFreeSpaceAvailability = scenarioUseFreeSpace.getAvailability();
const scenarioEraseAllAvailability = scenarioEraseAll.getAvailability();
const scenarioMountPointMappingAvailability = scenarioMountPointMapping.getAvailability();
const scenarioConfiguredStorageAvailability = scenarioConfiguredStorage.getAvailability({ scenarioId: "use-configured-storage" });
const scenarioConfiguredStorageKickstartAvailability = scenarioConfiguredStorageKickstart.getAvailability({ scenarioId: "use-configured-storage-kickstart" });
const [scenarioAvailability, setScenarioAvailability] = useState();
useEffect(() => {
setScenarioAvailability({
[scenarioConfiguredStorage.id]: scenarioConfiguredStorageAvailability,
[scenarioConfiguredStorageKickstart.id]: scenarioConfiguredStorageKickstartAvailability,
[scenarioEraseAll.id]: scenarioEraseAllAvailability,
[scenarioMountPointMapping.id]: scenarioMountPointMappingAvailability,
[scenarioReinstallFedora.id]: scenarioReinstallFedoraAvailability,
[scenarioUseFreeSpace.id]: scenarioUseFreeSpaceAvailability,
});
}, [
scenarioConfiguredStorageAvailability,
scenarioConfiguredStorageKickstartAvailability,
scenarioEraseAllAvailability,
scenarioMountPointMappingAvailability,
scenarioReinstallFedoraAvailability,
scenarioUseFreeSpaceAvailability,
]);
if (Object.values(scenarioAvailability || {}).some(value => value === undefined)) {
return undefined;
}
return scenarioAvailability;
};
export const scenarios = [
scenarioReinstallFedora,
scenarioUseFreeSpace,
scenarioEraseAll,
scenarioMountPointMapping,
scenarioConfiguredStorage,
scenarioConfiguredStorageKickstart,
];