diff options
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/metric_images/store/mutations.js')
-rw-r--r-- | app/assets/javascripts/vue_shared/components/metric_images/store/mutations.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_shared/components/metric_images/store/mutations.js b/app/assets/javascripts/vue_shared/components/metric_images/store/mutations.js new file mode 100644 index 00000000000..b42234b2829 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/metric_images/store/mutations.js @@ -0,0 +1,39 @@ +import * as types from './mutation_types'; + +export default { + [types.REQUEST_METRIC_IMAGES](state) { + state.isLoadingMetricImages = true; + }, + [types.RECEIVE_METRIC_IMAGES_SUCCESS](state, images) { + state.metricImages = images || []; + state.isLoadingMetricImages = false; + }, + [types.RECEIVE_METRIC_IMAGES_ERROR](state) { + state.isLoadingMetricImages = false; + }, + [types.REQUEST_METRIC_UPLOAD](state) { + state.isUploadingImage = true; + }, + [types.RECEIVE_METRIC_UPLOAD_SUCCESS](state, image) { + state.metricImages.push(image); + state.isUploadingImage = false; + }, + [types.RECEIVE_METRIC_UPLOAD_ERROR](state) { + state.isUploadingImage = false; + }, + [types.RECEIVE_METRIC_UPDATE_SUCCESS](state, image) { + state.isUploadingImage = false; + const metricIndex = state.metricImages.findIndex((img) => img.id === image.id); + if (metricIndex >= 0) { + state.metricImages.splice(metricIndex, 1, image); + } + }, + [types.RECEIVE_METRIC_DELETE_SUCCESS](state, imageId) { + const metricIndex = state.metricImages.findIndex((image) => image.id === imageId); + state.metricImages.splice(metricIndex, 1); + }, + [types.SET_INITIAL_DATA](state, { modelIid, projectId }) { + state.modelIid = modelIid; + state.projectId = projectId; + }, +}; |