Skip to content

Commit 4de97b7

Browse files
committed
closer to resolving undo in app.vue. actions.args[0] accesses the correct values now.
1 parent dfdd4c6 commit 4de97b7

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/App.vue

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,18 @@ const isTimetraveling = ref(false);
3636
const store = useStore();
3737
3838
store.$onAction((action) => {
39-
40-
if (typeof action.args === "object") {
41-
action.args = cloneDeep(action.args);
39+
if (typeof action.args[0] === "object") {
40+
action.args = cloneDeep(action.args[0]);
4241
}
4342
doneAction.value.push(action);
4443
if (!isTimetraveling.value) {
4544
if (undoneAction.value[undoneAction.value.length - 1]) {
4645
if (
4746
action.name ===
48-
undoneAction.value[undoneAction.value.length - 1].type &&
47+
undoneAction.value[undoneAction.value.length - 1].name &&
4948
deepEqual(
5049
action.args,
51-
undoneAction.value[undoneAction.value.length - 1].args
50+
undoneAction.value[undoneAction.value.length - 1].args[0]
5251
)
5352
) {
5453
undoneAction.value.pop();
@@ -93,10 +92,10 @@ const undo = () => {
9392
if this happens we keep popping the doneAction.value queue and building up the redo queue. */
9493
if (undone !== undefined) {
9594
undoneAction.value.push(undone);
96-
if (ignoredActions.has(undone.type)) {
95+
if (ignoredActions.has(undone.name)) {
9796
while (
9897
doneAction.value[doneAction.value.length - 1] &&
99-
ignoredActions.has(doneAction.value[doneAction.value.length - 1].type)
98+
ignoredActions.has(doneAction.value[doneAction.value.length - 1].name)
10099
) {
101100
undoneAction.value.push(doneAction.value.pop());
102101
}
@@ -112,8 +111,8 @@ const undo = () => {
112111
store.emptyState();
113112
114113
doneAction.value.forEach((action) => {
115-
store.action[name](cloneDeep(action.args));
116-
doneAction.pop();
114+
store[action.name](cloneDeep(action.args[0]));
115+
doneAction.value.pop();
117116
});
118117
isTimetraveling.value = false;
119118
};
@@ -125,7 +124,7 @@ const redo = () => {
125124
isTimetraveling.value = true;
126125
if (action) {
127126
const actionName = action.name;
128-
store[actionType](cloneDeep(action.args));
127+
store[actionName](cloneDeep(action.args[0]));
129128
}
130129
isTimetraveling.value = false;
131130
if (action && ignoredActions.has(action.name)) {

0 commit comments

Comments
 (0)