@@ -99,6 +99,7 @@ export default function makeServiceActions(service: Service<any>) {
99
99
params = params || { }
100
100
101
101
commit ( 'setPending' , 'create' )
102
+ commit ( 'setIdPending' , { method : 'create' , id : tempIds } )
102
103
103
104
return service
104
105
. create ( data , params )
@@ -121,34 +122,39 @@ export default function makeServiceActions(service: Service<any>) {
121
122
122
123
// response = state.keyedById[id]
123
124
}
124
- commit ( 'unsetPending' , 'create' )
125
125
commit ( 'removeTemps' , tempIds )
126
126
return response
127
127
} )
128
128
. catch ( error => {
129
129
commit ( 'setError' , { method : 'create' , error } )
130
- commit ( 'unsetPending' , 'create' )
131
130
return Promise . reject ( error )
132
131
} )
132
+ . finally ( ( ) => {
133
+ commit ( 'unsetPending' , 'create' )
134
+ commit ( 'unsetIdPending' , { method : 'create' , id : tempIds } )
135
+ } )
133
136
} ,
134
137
135
138
update ( { commit, dispatch, state } , [ id , data , params ] ) {
136
139
commit ( 'setPending' , 'update' )
140
+ commit ( 'setIdPending' , { method : 'update' , id } )
137
141
138
142
params = fastCopy ( params )
139
143
140
144
return service
141
145
. update ( id , data , params )
142
146
. then ( async function ( item ) {
143
147
dispatch ( 'addOrUpdate' , item )
144
- commit ( 'unsetPending' , 'update' )
145
148
return state . keyedById [ id ]
146
149
} )
147
150
. catch ( error => {
148
151
commit ( 'setError' , { method : 'update' , error } )
149
- commit ( 'unsetPending' , 'update' )
150
152
return Promise . reject ( error )
151
153
} )
154
+ . finally ( ( ) => {
155
+ commit ( 'unsetPending' , 'update' )
156
+ commit ( 'unsetIdPending' , { method : 'update' , id } )
157
+ } )
152
158
} ,
153
159
154
160
/**
@@ -157,6 +163,7 @@ export default function makeServiceActions(service: Service<any>) {
157
163
*/
158
164
patch ( { commit, dispatch, state } , [ id , data , params ] ) {
159
165
commit ( 'setPending' , 'patch' )
166
+ commit ( 'setIdPending' , { method : 'patch' , id } )
160
167
161
168
params = fastCopy ( params )
162
169
@@ -171,14 +178,16 @@ export default function makeServiceActions(service: Service<any>) {
171
178
. patch ( id , data , params )
172
179
. then ( async function ( item ) {
173
180
dispatch ( 'addOrUpdate' , item )
174
- commit ( 'unsetPending' , 'patch' )
175
181
return state . keyedById [ id ]
176
182
} )
177
183
. catch ( error => {
178
184
commit ( 'setError' , { method : 'patch' , error } )
179
- commit ( 'unsetPending' , 'patch' )
180
185
return Promise . reject ( error )
181
186
} )
187
+ . finally ( ( ) => {
188
+ commit ( 'unsetPending' , 'patch' )
189
+ commit ( 'unsetIdPending' , { method : 'patch' , id } )
190
+ } )
182
191
} ,
183
192
184
193
remove ( { commit } , idOrArray ) {
@@ -196,19 +205,22 @@ export default function makeServiceActions(service: Service<any>) {
196
205
params = fastCopy ( params )
197
206
198
207
commit ( 'setPending' , 'remove' )
208
+ commit ( 'setIdPending' , { method : 'remove' , id } )
199
209
200
210
return service
201
211
. remove ( id , params )
202
212
. then ( item => {
203
213
commit ( 'removeItem' , id )
204
- commit ( 'unsetPending' , 'remove' )
205
214
return item
206
215
} )
207
216
. catch ( error => {
208
217
commit ( 'setError' , { method : 'remove' , error } )
209
- commit ( 'unsetPending' , 'remove' )
210
218
return Promise . reject ( error )
211
219
} )
220
+ . finally ( ( ) => {
221
+ commit ( 'unsetPending' , 'remove' )
222
+ commit ( 'unsetIdPending' , { method : 'remove' , id } )
223
+ } )
212
224
}
213
225
}
214
226
0 commit comments