mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									b7eb6cacc2
								
							
						
					
					
						commit
						587be1bb67
					
				| @ -0,0 +1,38 @@ | |||||||
|  | import { target, targetable } from '@github/catalyst/lib/targetable' | ||||||
|  | 
 | ||||||
|  | export default targetable(class extends HTMLElement { | ||||||
|  |   static [target.static] = ['defaultButton', 'loadingButton'] | ||||||
|  | 
 | ||||||
|  |   connectedCallback () { | ||||||
|  |     this.addEventListener('click', () => this.downloadFiles()) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   toggleState () { | ||||||
|  |     this.defaultButton?.classList?.toggle('hidden') | ||||||
|  |     this.loadingButton?.classList?.toggle('hidden') | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   downloadFiles () { | ||||||
|  |     if (!this.dataset.src) return | ||||||
|  | 
 | ||||||
|  |     this.toggleState() | ||||||
|  | 
 | ||||||
|  |     fetch(this.dataset.src).then((response) => response.json()).then((urls) => { | ||||||
|  |       urls.forEach((url) => { | ||||||
|  |         fetch(url).then(async (resp) => { | ||||||
|  |           const blobUrl = URL.createObjectURL(await resp.blob()) | ||||||
|  |           const link = document.createElement('a') | ||||||
|  | 
 | ||||||
|  |           link.href = blobUrl | ||||||
|  |           link.setAttribute('download', resp.headers.get('content-disposition').split('"')[1]) | ||||||
|  | 
 | ||||||
|  |           link.click() | ||||||
|  | 
 | ||||||
|  |           URL.revokeObjectURL(url) | ||||||
|  |         }) | ||||||
|  |       }) | ||||||
|  |     }).finally(() => { | ||||||
|  |       this.toggleState() | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | }) | ||||||
					Loading…
					
					
				
		Reference in new issue