From 5567aa3f1f0f19dd604a3a8db3abeeb640531ab1 Mon Sep 17 00:00:00 2001 From: Nicolas Borde Date: Thu, 27 Jan 2022 13:57:50 +0100 Subject: [PATCH] fix: default current scenario is now first scenario in alphabetical order --- .../app/FetchInitialData/FetchInitialData.js | 3 ++- src/views/ScenarioManager/ScenarioManager.js | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/state/sagas/app/FetchInitialData/FetchInitialData.js b/src/state/sagas/app/FetchInitialData/FetchInitialData.js index fbce4eec2..68248f7ec 100644 --- a/src/state/sagas/app/FetchInitialData/FetchInitialData.js +++ b/src/state/sagas/app/FetchInitialData/FetchInitialData.js @@ -16,6 +16,7 @@ import { POWER_BI_ACTIONS_KEY } from '../../../commons/PowerBIConstants'; import { DATASET_ACTIONS_KEY } from '../../../commons/DatasetConstants'; import { WORKSPACE_ACTIONS_KEY } from '../../../commons/WorkspaceConstants'; import { SOLUTION_ACTIONS_KEY } from '../../../commons/SolutionConstants'; +import { getFirstScenarioMaster } from '../../../../utils/SortScenarioListUtils'; const selectSolutionIdFromCurrentWorkspace = (state) => state.workspace.current.data.solution.solutionId; const selectScenarioList = (state) => state.scenario.list.data; @@ -35,7 +36,7 @@ export function* fetchAllInitialData(action) { yield call(fetchSolutionByIdData, workspaceId, solutionId); const scenarioList = yield select(selectScenarioList); if (scenarioList.length !== 0) { - yield call(fetchScenarioByIdForInitialData, workspaceId, scenarioList[0].id); + yield call(fetchScenarioByIdForInitialData, workspaceId, getFirstScenarioMaster(scenarioList).id); // Start state polling for running scenarios for (let i = 0; i < scenarioList.length; ++i) { if (scenarioList[i].state === SCENARIO_RUN_STATE.RUNNING) { diff --git a/src/views/ScenarioManager/ScenarioManager.js b/src/views/ScenarioManager/ScenarioManager.js index ad9658027..894ed3ea4 100644 --- a/src/views/ScenarioManager/ScenarioManager.js +++ b/src/views/ScenarioManager/ScenarioManager.js @@ -9,6 +9,7 @@ import { WORKSPACE_ID } from '../../config/AppInstance'; import { useTranslation } from 'react-i18next'; import { PERMISSIONS } from '../../services/config/Permissions'; import { PermissionsGate } from '../../components/PermissionsGate'; +import { getFirstScenarioMaster } from '../../utils/SortScenarioListUtils'; const useStyles = makeStyles((theme) => ({ root: { @@ -37,6 +38,20 @@ const ScenarioManager = (props) => { const { currentScenario, datasets, deleteScenario, findScenarioById, scenarios, resetCurrentScenario, userId } = props; + const getScenariolistAfterDelete = (idOfScenarioToDelete) => { + const scenarioListAfterDelete = scenarios + .map((scenario) => { + const newScenario = { ...scenario }; + if (newScenario.parentId === idOfScenarioToDelete) { + newScenario.parentId = currentScenario.parentId; + } + return newScenario; + }) + .filter((scenario) => scenario.id !== idOfScenarioToDelete); + + return scenarioListAfterDelete; + }; + function onScenarioDelete(scenarioId) { const lastScenarioDelete = scenarios.length === 1; deleteScenario(WORKSPACE_ID, scenarioId); @@ -44,7 +59,7 @@ const ScenarioManager = (props) => { if (lastScenarioDelete) { resetCurrentScenario(); } else { - findScenarioById(WORKSPACE_ID, scenarios[0].id); + findScenarioById(WORKSPACE_ID, getFirstScenarioMaster(getScenariolistAfterDelete(scenarioId)).id); } } }