@@ -36,19 +36,18 @@ const isTimetraveling = ref(false);
36
36
const store = useStore ();
37
37
38
38
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 ]);
42
41
}
43
42
doneAction .value .push (action);
44
43
if (! isTimetraveling .value ) {
45
44
if (undoneAction .value [undoneAction .value .length - 1 ]) {
46
45
if (
47
46
action .name ===
48
- undoneAction .value [undoneAction .value .length - 1 ].type &&
47
+ undoneAction .value [undoneAction .value .length - 1 ].name &&
49
48
deepEqual (
50
49
action .args ,
51
- undoneAction .value [undoneAction .value .length - 1 ].args
50
+ undoneAction .value [undoneAction .value .length - 1 ].args [ 0 ]
52
51
)
53
52
) {
54
53
undoneAction .value .pop ();
@@ -93,10 +92,10 @@ const undo = () => {
93
92
if this happens we keep popping the doneAction.value queue and building up the redo queue. */
94
93
if (undone !== undefined ) {
95
94
undoneAction .value .push (undone);
96
- if (ignoredActions .has (undone .type )) {
95
+ if (ignoredActions .has (undone .name )) {
97
96
while (
98
97
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 )
100
99
) {
101
100
undoneAction .value .push (doneAction .value .pop ());
102
101
}
@@ -112,8 +111,8 @@ const undo = () => {
112
111
store .emptyState ();
113
112
114
113
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 ();
117
116
});
118
117
isTimetraveling .value = false ;
119
118
};
@@ -125,7 +124,7 @@ const redo = () => {
125
124
isTimetraveling .value = true ;
126
125
if (action) {
127
126
const actionName = action .name ;
128
- store[actionType ](cloneDeep (action .args ));
127
+ store[actionName ](cloneDeep (action .args [ 0 ] ));
129
128
}
130
129
isTimetraveling .value = false ;
131
130
if (action && ignoredActions .has (action .name )) {
0 commit comments