Skip to content

Commit 98fd7d5

Browse files
author
Ives van Hoorne
committed
Fix creating a module locally and opening before server response
1 parent 3d5782c commit 98fd7d5

File tree

1 file changed

+25
-7
lines changed
  • packages/app/src/app/store/modules/files

1 file changed

+25
-7
lines changed

packages/app/src/app/store/modules/files/actions.js

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,34 @@ export function createOptimisticDirectory({ state, props, utils }) {
6464

6565
export function updateOptimisticModule({ state, props }) {
6666
const sandbox = state.get('editor.currentSandbox');
67-
const optimisticModuleIndex = sandbox.modules.findIndex(
67+
let optimisticModuleIndex = sandbox.modules.findIndex(
6868
module => module.shortid === props.optimisticModule.shortid
6969
);
7070

71-
state.merge(
72-
`editor.sandboxes.${sandbox.id}.modules.${optimisticModuleIndex}`,
73-
{
74-
id: props.newModule.id,
75-
shortid: props.newModule.shortid,
76-
}
71+
const existingModule = state.get(
72+
`editor.sandboxes.${sandbox.id}.modules.${optimisticModuleIndex}`
73+
);
74+
const newModule = {
75+
...existingModule,
76+
id: props.newModule.id,
77+
shortid: props.newModule.shortid,
78+
};
79+
80+
state.push(`editor.sandboxes.${sandbox.id}.modules`, newModule);
81+
82+
if (
83+
state.get('editor.currentModuleShortid') === props.optimisticModule.shortid
84+
) {
85+
state.set(`editor.currentModuleShortid`, props.newModule.shortid);
86+
}
87+
88+
optimisticModuleIndex = sandbox.modules.findIndex(
89+
module => module.shortid === props.optimisticModule.shortid
90+
);
91+
state.splice(
92+
`editor.sandboxes.${sandbox.id}.modules`,
93+
optimisticModuleIndex,
94+
1
7795
);
7896
}
7997

0 commit comments

Comments
 (0)