Browse Source

better async handling for flag unflag

Bachir Soussi Chiadmi 3 years ago
parent
commit
c12f72e3fe

File diff suppressed because it is too large
+ 0 - 0
web/themes/custom/materiotheme/assets/dist/main.js


+ 34 - 27
web/themes/custom/materiotheme/vuejs/store/modules/user.js

@@ -224,37 +224,44 @@ export default {
     },
     flag({ dispatch, commit, state }, args) {
       console.log("user flag", args.uuid, args.collid);
-      const params = {
-        flagid: state.flagcolls[args.collid].flag_id,
-        uuid: args.uuid,
-        flagcollid: args.collid
-      };
-      return MA.post(`materio_flag/flag`, params)
-        .then(({ data }) => {
-          console.log("user MA flag", data);
-          dispatch('getUserFlagColls')
-        })
-        .catch(error => {
-          console.warn("Issue USER MA flag", error);
-        });
+      return new Promise((resolve, reject) => {
+        const params = {
+          flagid: state.flagcolls[args.collid].flag_id,
+          uuid: args.uuid,
+          flagcollid: args.collid
+        };
+        return MA.post(`materio_flag/flag`, params)
+          .then(({ data }) => {
+            console.log("user MA flag", data);
+            dispatch('getUserFlagColls').then(() =>{
+              resolve();
+            });
+          })
+          .catch(error => {
+            console.warn("Issue USER MA flag", error);
+          });
+      });
 
     },
     unFlag({ dispatch, commit, state }, args) {
       console.log("user unFlag", args.uuid, args.collid);
-      const params = {
-        flagid: state.flagcolls[args.collid].flag_id,
-        uuid: args.uuid,
-        flagcollid: args.collid
-      };
-      return MA.post(`materio_flag/unflag`, params)
-        .then(({ data }) => {
-          console.log("user MA unFlag", data);
-          dispatch('getUserFlagColls')
-        })
-        .catch(error => {
-          console.warn("Issue USER MA unFlag", error);
-        });
-
+      return new Promise((resolve, reject) => {
+        const params = {
+          flagid: state.flagcolls[args.collid].flag_id,
+          uuid: args.uuid,
+          flagcollid: args.collid
+        };
+        return MA.post(`materio_flag/unflag`, params)
+          .then(({ data }) => {
+            console.log("user MA unFlag", data);
+            dispatch('getUserFlagColls').then(() =>{
+              resolve();
+            });
+          })
+          .catch(error => {
+            console.warn("Issue USER MA unFlag", error);
+          });
+      });
     },
     userLogout({ commit, state }) {
       const credentials = qs.stringify({

Some files were not shown because too many files changed in this diff