3 lines
1.8 KiB
JavaScript
3 lines
1.8 KiB
JavaScript
import{d as h,t as n}from"./vue.runtime.esm-Ct3_M7aQ.chunk.mjs";import{ap as C,aj as r,l as s,aq as F}from"./index-BMeBqg0T.chunk.mjs";import{a as g,b as f}from"./collectionFetcher-Bc_5r3B7.chunk.mjs";import{A as d}from"./AbortControllerMixin-KqbYNBDv.chunk.mjs";const b=h({name:"FetchCollectionContentMixin",data(){return{fetchSemaphore:new F(1),loadingCollection:!1,loadingCollectionFiles:!1,errorFetchingCollection:null,errorFetchingCollectionFiles:null}},mixins:[d],methods:{async fetchCollection(e,i,l){if(this.loadingCollection)return null;try{this.loadingCollection=!0,this.errorFetchingCollection=null;const t=await f(e,{signal:this.abortController.signal},i,l);return this.$store.dispatch("addCollections",{collections:[t]}),t}catch(t){if(t.response?.status===404)return this.errorFetchingCollection=404,null;this.errorFetchingCollection=t,s.error("[PublicCollectionContent] Error fetching collection",{error:t}),r(n("photos","Failed to fetch collection."))}finally{this.loadingCollection=!1}return null},async fetchCollectionFiles(e,i=[],l){if(this.loadingCollectionFiles)return[];i=[...i,...C];const t=await this.fetchSemaphore.acquire();try{this.errorFetchingCollectionFiles=null,this.loadingCollectionFiles=!0;const o=await g(e,{signal:this.abortController.signal},i,l),c=o.map(a=>a.fileid?.toString());return this.$store.dispatch("appendFiles",o),await this.$store.commit("setCollectionFiles",{collectionFileName:e,fileIds:c}),o}catch(o){if(o.response?.status===404)return this.errorFetchingCollectionFiles=404,[];this.errorFetchingCollectionFiles=o,r(n("photos","Failed to fetch collections list.")),s.error("[PublicCollectionContent] Error fetching collection files",{error:o})}finally{this.loadingCollectionFiles=!1,this.fetchSemaphore.release(t)}return[]}}});export{b as F};
|
|
//# sourceMappingURL=FetchCollectionContentMixin-BXizDLoQ.chunk.mjs.map
|