Skip to content

Commit

Permalink
forces sidebarPlugins to unmount and mount during an ActivityTab update
Browse files Browse the repository at this point in the history
sidebarPlugins is initialized as empty array and during next reattached so vue force a remount

Signed-off-by: Jan Messer <jan@mtec-studios.ch>

[skip ci]
  • Loading branch information
Messj1 authored and backportbot[bot] committed Sep 5, 2024
1 parent b219ed3 commit a91965c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
3 changes: 3 additions & 0 deletions js/ActivityTab-CKk7P44F.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".activity[data-v-4f32db6b]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-4f32db6b]{display:flex;flex-direction:column;width:100%}.activity__empty-content[data-v-4f32db6b]{height:100%}[data-v-4f32db6b] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
/*! third party licenses: js/vendor.LICENSE.txt */
import{b as c,e as l,f as u,v}from"./NcCheckboxRadioSwitch-D2GbHtCS-C8gN2dlh.mjs";import{d as f,r as p,o as d,g as y,f as g,t as o}from"./index-BK2GMarY.mjs";import{a as m,b as h,N as _,c as b}from"./Activity-B8_MJ-Qt.mjs";import{g as r,a as I,b as A}from"./api-D5L3rAZA.mjs";import{l as S}from"./logger-CcLDq3iB.mjs";import{l as P}from"./activity-sidebar.mjs";import"./_commonjsHelpers-BdswosdL.mjs";const x=f({__name:"ActivitySidebarPlugin",props:{plugin:null,fileInfo:null},emits:["reload-activities"],setup(t,{emit:i}){const a=t,s=p();return d(()=>{var n;return a.plugin.mount(s.value,{context:(n=y())==null?void 0:n.proxy,fileInfo:a.fileInfo,reload:()=>i("reload-activities")})}),g(()=>a.plugin.unmount()),{__sfc:!0,props:a,emit:i,attachTarget:s}}});var N=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{ref:"attachTarget"})},w=[],C=c(x,N,w,!1,null,null,null,null);const k=C.exports,E={name:"ActivityTab",components:{Activity:m,NcEmptyContent:h,NcIconSvgWrapper:_,NcLoadingIcon:l,ActivitySidebarPlugin:k},data(){return{error:"",loading:!0,fileInfo:null,activities:[],lightningBoltSVG:P,sidebarPlugins:[]}},mounted(){this.sidebarPlugins=r()},methods:{async update(t){this.sidebarPlugins=[];let i=r();i.length>0&&this.$nextTick(()=>{this.sidebarPlugins=i}),this.fileInfo=t,this.resetState(),await this.getActivities()},async getActivities(){try{this.loading=!0;const t=await this.processActivities(await this.loadRealActivities()),i=await I({fileInfo:this.fileInfo});this.activities=[...t,...i].sort((a,s)=>s.timestamp-a.timestamp)}catch(t){this.error=o("activity","Unable to load the activity list"),console.error("Error loading the activity list",t)}finally{this.loading=!1}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(){try{const{data:t}=await u.get(v("apps/activity/api/v2/activity/filter"),{params:{format:"json",object_type:"files",object_id:this.fileInfo.id}});return t.ocs.data}catch(t){if(t.response!==void 0&&t.response.status===304)return[];throw e}},processActivities(t){t=t.map(a=>new b(a)),S.debug("Processed ".concat(t.length," activity(ies)"),{activities:t,fileInfo:this.fileInfo});const i=A();return t.filter(a=>!i||i.every(s=>s(a)))},t:o}};var T=function(){var t=this,i=t._self._c;return i("div",{staticClass:"activity",class:{"icon-loading":t.loading}},[t.error?i("NcEmptyContent",{attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[i("NcIconSvgWrapper",{attrs:{svg:t.lightningBoltSVG}})]},proxy:!0}],null,!1,63559581)}):[t.sidebarPlugins.length>0?i("div",{staticClass:"activity__actions"},t._l(t.sidebarPlugins,function(a,s){return i("ActivitySidebarPlugin",{key:s,attrs:{plugin:a,"file-info":t.fileInfo},on:{"reload-activities":function(n){return t.getActivities()}}})}),1):t._e(),t.loading?i("NcEmptyContent",{staticClass:"activity__empty-content",attrs:{name:t.t("activity","Loading activities")},scopedSlots:t._u([{key:"icon",fn:function(){return[i("NcLoadingIcon")]},proxy:!0}],null,!1,3085876643)}):t.activities.length===0?i("NcEmptyContent",{staticClass:"activity__empty-content",attrs:{name:t.t("activity","No activity yet")},scopedSlots:t._u([{key:"icon",fn:function(){return[i("span",{staticClass:"icon-activity"})]},proxy:!0}])}):i("ul",t._l(t.activities,function(a){return i("Activity",{key:a.id,attrs:{activity:a,"show-previews":!1},on:{reload:function(s){return t.getActivities()}}})}),1)]],2)},j=[],L=c(E,T,j,!1,null,"4f32db6b",null,null);const U=L.exports;export{U as default};
1 change: 1 addition & 0 deletions js/ActivityTab-CKk7P44F.mjs.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions src/views/ActivityTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,14 @@ export default {
* @param {object} fileInfo the current file FileInfo
*/
async update(fileInfo) {
this.sidebarPlugins = []
let sidebarPlugins = getSidebarActions()
if (sidebarPlugins.length > 0) {
this.$nextTick(() => {
this.sidebarPlugins = sidebarPlugins
})
}
this.fileInfo = fileInfo
this.resetState()
await this.getActivities()
Expand Down

0 comments on commit a91965c

Please sign in to comment.