summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/user_lists/store/show/mutations.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/user_lists/store/show/mutations.js')
-rw-r--r--app/assets/javascripts/user_lists/store/show/mutations.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/assets/javascripts/user_lists/store/show/mutations.js b/app/assets/javascripts/user_lists/store/show/mutations.js
new file mode 100644
index 00000000000..c3e766465a7
--- /dev/null
+++ b/app/assets/javascripts/user_lists/store/show/mutations.js
@@ -0,0 +1,29 @@
+import { states } from '../../constants/show';
+import * as types from './mutation_types';
+import { parseUserIds } from '../utils';
+
+export default {
+ [types.REQUEST_USER_LIST](state) {
+ state.state = states.LOADING;
+ },
+ [types.RECEIVE_USER_LIST_SUCCESS](state, userList) {
+ state.state = states.SUCCESS;
+ state.userIds = userList.user_xids?.length > 0 ? parseUserIds(userList.user_xids) : [];
+ state.userList = userList;
+ },
+ [types.RECEIVE_USER_LIST_ERROR](state) {
+ state.state = states.ERROR;
+ },
+ [types.DISMISS_ERROR_ALERT](state) {
+ state.state = states.ERROR_DISMISSED;
+ },
+ [types.ADD_USER_IDS](state, ids) {
+ state.userIds = [
+ ...state.userIds,
+ ...parseUserIds(ids).filter(id => id && !state.userIds.includes(id)),
+ ];
+ },
+ [types.REMOVE_USER_ID](state, id) {
+ state.userIds = state.userIds.filter(uid => uid !== id);
+ },
+};