Preserve screen selection when renaming IDs
This commit is contained in:
parent
13f66a0bbe
commit
4616f3fa45
@ -301,11 +301,11 @@ function builderReducer(state: BuilderState, action: BuilderAction): BuilderStat
|
|||||||
}
|
}
|
||||||
case "update-screen": {
|
case "update-screen": {
|
||||||
const { screenId, screen } = action.payload;
|
const { screenId, screen } = action.payload;
|
||||||
return withDirty(state, {
|
let nextSelectedScreenId = state.selectedScreenId;
|
||||||
...state,
|
|
||||||
screens: state.screens.map((current) =>
|
const nextScreens = state.screens.map((current) =>
|
||||||
current.id === screenId
|
current.id === screenId
|
||||||
? (() => {
|
? (() => {
|
||||||
const nextScreen = {
|
const nextScreen = {
|
||||||
...current,
|
...current,
|
||||||
...screen,
|
...screen,
|
||||||
@ -336,10 +336,19 @@ function builderReducer(state: BuilderState, action: BuilderAction): BuilderStat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state.selectedScreenId === current.id && nextScreen.id !== current.id) {
|
||||||
|
nextSelectedScreenId = nextScreen.id;
|
||||||
|
}
|
||||||
|
|
||||||
return nextScreen;
|
return nextScreen;
|
||||||
})()
|
})()
|
||||||
: current
|
: current
|
||||||
),
|
);
|
||||||
|
|
||||||
|
return withDirty(state, {
|
||||||
|
...state,
|
||||||
|
screens: nextScreens,
|
||||||
|
selectedScreenId: nextSelectedScreenId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
case "reposition-screen": {
|
case "reposition-screen": {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user