Don't overwrite certain values if the refreshing comes in via short updates

This e.g. happens from the talk participant list which only has the status, message and icon.
Due to the overwriting e.g. the clearAt was overwritten with null
and afterwards the status modal showed "Invalid date" as "Clear at"

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2022-05-27 09:26:53 +02:00 committed by John Molakvoæ
parent ee0e9b7d3a
commit e89a98b1eb
No known key found for this signature in database
GPG key ID: 60C25B8C072916CF
3 changed files with 18 additions and 7 deletions

View file

@ -161,7 +161,7 @@ var b={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus:function(e,t
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/var z={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus:function(e,t){var n=t.statusType;e.status=n,e.statusIsUserDefined=!0},setPredefinedMessage:function(e,t){var n=t.messageId,a=t.clearAt,r=t.message,s=t.icon;e.messageId=n,e.messageIsPredefined=!0,e.message=r,e.icon=s,e.clearAt=a},setCustomMessage:function(e,t){var n=t.message,a=t.icon,r=t.clearAt;e.messageId=null,e.messageIsPredefined=!1,e.message=n,e.icon=a,e.clearAt=r},clearMessage:function(e){e.messageId=null,e.messageIsPredefined=!1,e.message=null,e.icon=null,e.clearAt=null},loadStatusFromServer:function(e,t){var n=t.status,a=t.statusIsUserDefined,r=t.message,s=t.icon,o=t.clearAt,i=t.messageIsPredefined,l=t.messageId;e.status=n,e.statusIsUserDefined=a,e.message=r,e.icon=s,e.clearAt=o,e.messageIsPredefined=i,e.messageId=l}},getters:{},actions:{setStatus:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.state,i=t.statusType,n.next=4,O(i);case 4:r("setStatus",{statusType:i}),Object(R.emit)("user_status:status.updated",{status:o.status,message:o.message,icon:o.icon,clearAt:o.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 6:case"end":return n.stop()}}),n)})))()},setPredefinedMessage:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i,l,u,c,d,m,p;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.rootState,i=e.state,l=t.messageId,u=t.clearAt,c=I(u),n.next=5,F(l,c);case 5:d=o.predefinedStatuses.predefinedStatuses.find((function(e){return e.id===l})),m=d.message,p=d.icon,r("setPredefinedMessage",{messageId:l,clearAt:c,message:m,icon:p}),Object(R.emit)("user_status:status.updated",{status:i.status,message:i.message,icon:i.icon,clearAt:i.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 9:case"end":return n.stop()}}),n)})))()},setCustomMessage:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i,l,u,c;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.state,i=t.message,l=t.icon,u=t.clearAt,c=I(u),n.next=5,E(i,l,c);case 5:r("setCustomMessage",{message:i,icon:l,clearAt:c}),Object(R.emit)("user_status:status.updated",{status:o.status,message:o.message,icon:o.icon,clearAt:o.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 7:case"end":return n.stop()}}),n)})))()},clearMessage:function(e){return W(regeneratorRuntime.mark((function t(){var n,a,r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.commit,r=e.state,t.next=3,H();case 3:a("clearMessage"),Object(R.emit)("user_status:status.updated",{status:r.status,message:r.message,icon:r.icon,clearAt:r.clearAt,userId:null===(n=Object(s.getCurrentUser)())||void 0===n?void 0:n.uid});case 5:case"end":return t.stop()}}),t)})))()},reFetchStatusFromServer:function(e){return W(regeneratorRuntime.mark((function t(){var n,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,t.next=3,j();case 3:a=t.sent,n("loadStatusFromServer",a);case 5:case"end":return t.stop()}}),t)})))()},setStatusFromHeartbeat:function(e,t){return W(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:(0,e.commit)("loadStatusFromServer",t);case 2:case"end":return n.stop()}}),n)})))()},loadStatusFromInitialState:function(e){(0,e.commit)("loadStatusFromServer",Object(A.loadState)("user_status","status"))}}};
*/var z={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus:function(e,t){var n=t.statusType;e.status=n,e.statusIsUserDefined=!0},setPredefinedMessage:function(e,t){var n=t.messageId,a=t.clearAt,r=t.message,s=t.icon;e.messageId=n,e.messageIsPredefined=!0,e.message=r,e.icon=s,e.clearAt=a},setCustomMessage:function(e,t){var n=t.message,a=t.icon,r=t.clearAt;e.messageId=null,e.messageIsPredefined=!1,e.message=n,e.icon=a,e.clearAt=r},clearMessage:function(e){e.messageId=null,e.messageIsPredefined=!1,e.message=null,e.icon=null,e.clearAt=null},loadStatusFromServer:function(e,t){var n=t.status,a=t.statusIsUserDefined,r=t.message,s=t.icon,o=t.clearAt,i=t.messageIsPredefined,l=t.messageId;e.status=n,e.message=r,e.icon=s,void 0!==a&&(e.statusIsUserDefined=a),void 0!==o&&(e.clearAt=o),void 0!==i&&(e.messageIsPredefined=i),void 0!==l&&(e.messageId=l)}},getters:{},actions:{setStatus:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.state,i=t.statusType,n.next=4,O(i);case 4:r("setStatus",{statusType:i}),Object(R.emit)("user_status:status.updated",{status:o.status,message:o.message,icon:o.icon,clearAt:o.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 6:case"end":return n.stop()}}),n)})))()},setPredefinedMessage:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i,l,u,c,d,m,p;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.rootState,i=e.state,l=t.messageId,u=t.clearAt,c=I(u),n.next=5,F(l,c);case 5:d=o.predefinedStatuses.predefinedStatuses.find((function(e){return e.id===l})),m=d.message,p=d.icon,r("setPredefinedMessage",{messageId:l,clearAt:c,message:m,icon:p}),Object(R.emit)("user_status:status.updated",{status:i.status,message:i.message,icon:i.icon,clearAt:i.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 9:case"end":return n.stop()}}),n)})))()},setCustomMessage:function(e,t){return W(regeneratorRuntime.mark((function n(){var a,r,o,i,l,u,c;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.commit,o=e.state,i=t.message,l=t.icon,u=t.clearAt,c=I(u),n.next=5,E(i,l,c);case 5:r("setCustomMessage",{message:i,icon:l,clearAt:c}),Object(R.emit)("user_status:status.updated",{status:o.status,message:o.message,icon:o.icon,clearAt:o.clearAt,userId:null===(a=Object(s.getCurrentUser)())||void 0===a?void 0:a.uid});case 7:case"end":return n.stop()}}),n)})))()},clearMessage:function(e){return W(regeneratorRuntime.mark((function t(){var n,a,r;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.commit,r=e.state,t.next=3,H();case 3:a("clearMessage"),Object(R.emit)("user_status:status.updated",{status:r.status,message:r.message,icon:r.icon,clearAt:r.clearAt,userId:null===(n=Object(s.getCurrentUser)())||void 0===n?void 0:n.uid});case 5:case"end":return t.stop()}}),t)})))()},reFetchStatusFromServer:function(e){return W(regeneratorRuntime.mark((function t(){var n,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,t.next=3,j();case 3:a=t.sent,n("loadStatusFromServer",a);case 5:case"end":return t.stop()}}),t)})))()},setStatusFromHeartbeat:function(e,t){return W(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:(0,e.commit)("loadStatusFromServer",t);case 2:case"end":return n.stop()}}),n)})))()},loadStatusFromInitialState:function(e){(0,e.commit)("loadStatusFromServer",Object(A.loadState)("user_status","status"))}}};
/**
* @copyright Copyright (c) 2020 Georg Ehrke
*
@ -207,4 +207,4 @@ r.default.use(L.a);var $=new L.a.Store({modules:{predefinedStatuses:b,userStatus
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/a.nc=btoa(Object(s.getRequestToken)()),a.p=OC.linkTo("user_status","js/"),r.default.prototype.t=t,r.default.prototype.$t=t;n.default=new r.default({el:'li[data-id="user_status-menuitem"]',name:"UserStatusRoot",render:function(e){return e(M)},store:$});document.addEventListener("DOMContentLoaded",(function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("status",(function(e){return new(r.default.extend(M))({propsData:{inline:!0},store:$}).$mount(e)}))}))}]);
//# sourceMappingURL=user-status-menu.js.map?v=f3b1fe9cd3f0f2dc44ab
//# sourceMappingURL=user-status-menu.js.map?v=15efa5a67fc399dbab15

File diff suppressed because one or more lines are too long

View file

@ -130,12 +130,23 @@ const mutations = {
*/
loadStatusFromServer(state, { status, statusIsUserDefined, message, icon, clearAt, messageIsPredefined, messageId }) {
state.status = status
state.statusIsUserDefined = statusIsUserDefined
state.message = message
state.icon = icon
state.clearAt = clearAt
state.messageIsPredefined = messageIsPredefined
state.messageId = messageId
// Don't overwrite certain values if the refreshing comes in via short updates
// E.g. from talk participant list which only has the status, message and icon
if (typeof statusIsUserDefined !== 'undefined') {
state.statusIsUserDefined = statusIsUserDefined
}
if (typeof clearAt !== 'undefined') {
state.clearAt = clearAt
}
if (typeof messageIsPredefined !== 'undefined') {
state.messageIsPredefined = messageIsPredefined
}
if (typeof messageId !== 'undefined') {
state.messageId = messageId
}
},
}