You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nextcloud/dist/user_status-menu.js

3 lines
20 KiB
JavaScript

/*! For license information please see user_status-menu.js.LICENSE.txt */
(()=>{var s,e,a,r={25810:(s,e,a)=>{"use strict";var r=a(20144),n=a(77958),o=a(69183),u=a(54572),i=a(35153),c=a(20296),l=a.n(c),d=a(93664),m=a(79753),p=a(84387),g=a(25108);const h={name:"UserStatus",components:{NcButton:u.Z,NcUserStatusIcon:i.Z,SetStatusModal:()=>Promise.all([a.e(7874),a.e(8299)]).then(a.bind(a,7420))},mixins:[p.Z],props:{inline:{type:Boolean,default:!1}},data:()=>({heartbeatInterval:null,isAway:!1,isModalOpen:!1,mouseMoveListener:null,setAwayTimeout:null}),mounted(){this.$store.dispatch("loadStatusFromInitialState"),OC.config.session_keepalive&&(this.heartbeatInterval=setInterval(this._backgroundHeartbeat.bind(this),3e5),this.setAwayTimeout=()=>{this.isAway=!0},this.mouseMoveListener=l()((()=>{const t=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),t&&this._backgroundHeartbeat()}),2e3,!0),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,o.Ld)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,o.r1)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const t=await(async t=>{const s=(0,m.generateOcsUrl)("apps/user_status/api/v1/heartbeat?format=json");return(await d.Z.put(s,{status:t?"away":"online"})).data.ocs.data})(this.isAway);t?.userId?this.$store.dispatch("setStatusFromHeartbeat",t):await this.$store.dispatch("reFetchStatusFromServer")}catch(t){g.debug("Failed sending heartbeat, got: "+t.response?.status)}},handleUserStatusUpdated(t){OC.getCurrentUser().uid===t.userId&&this.$store.dispatch("setStatusFromObject",{status:t.status,icon:t.icon,message:t.message})}}};var j=a(93379),v=a.n(j),f=a(7795),A=a.n(f),b=a(90569),y=a.n(b),k=a(3565),w=a.n(k),S=a(19216),C=a.n(S),I=a(44589),_=a.n(I),x=a(68163),O={};O.styleTagTransform=_(),O.setAttributes=w(),O.insert=y().bind(null,"head"),O.domAPI=A(),O.insertStyleElement=C(),v()(x.Z,O),x.Z&&x.Z.locals&&x.Z.locals;const M=(0,a(51900).Z)(h,(function(){var t=this,s=t._self._c;return s(t.inline?"div":"li",{tag:"component"},[t.inline?s("NcButton",{on:{click:function(s){return s.stopPropagation(),t.openModal.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[s("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.visibleMessage)+"\n\t")]):s("button",{staticClass:"user-status-menu-item",on:{click:function(s){return s.stopPropagation(),t.openModal.apply(null,arguments)}}},[s("NcUserStatusIcon",{staticClass:"user-status-icon",attrs:{status:t.statusType,"aria-hidden":"true"}}),t._v("\n\t\t"+t._s(t.visibleMessage)+"\n\t")],1),t._v(" "),t.isModalOpen?s("SetStatusModal",{attrs:{inline:t.inline},on:{close:t.closeModal}}):t._e()],1)}),[],!1,null,"2c5c2586",null).exports;var U=a(20629);const P={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(t,s){t.predefinedStatuses=[...t.predefinedStatuses,s]}},getters:{statusesHaveLoaded:t=>t.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses(t){let{state:s,commit:e}=t;if(s.predefinedStatuses.length>0)return;const a=await(async()=>{const t=(0,m.generateOcsUrl)("apps/user_status/api/v1/predefined_statuses?format=json");return(await d.Z.get(t)).data.ocs.data})();for(const t of a)e("addPredefinedStatus",t)}}};var z=a(43554),T=a(64039),F=a(80351),Z=a.n(F);const D=t=>{if(null===t)return null;const s=(0,T.n)();if("period"===t.type)return s.setSeconds(s.getSeconds()+t.time),Math.floor(s.getTime()/1e3);if("end-of"===t.type)switch(t.time){case"day":case"week":return Number(Z()(s).endOf(t.time).format("X"))}return"_time"===t.type?t.time:null},E={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(t,s){let{statusType:e}=s;t.status=e,t.statusIsUserDefined=!0},setPredefinedMe
//# sourceMappingURL=user_status-menu.js.map?v=02ff4c7e29eb7cb1f5db