export default { props: [ 'name', 'href', 'token' ], data() { return {showCopied: false} }, template: `
copied!
{{name}} 🗐
`, methods: { fetch() { event.preventDefault() return fetch(this.href, { method: 'GET', headers: { 'Authorization': 'Bearer ' + this.token }, }) }, handleFetchError(e) { console.log("failed to get value:", e) alert('failed to get value') }, fetchAndSave() { this.fetch().then(resp => resp.blob()).then((value) => { window.open(URL.createObjectURL(value), "_blank") }).catch(this.handleFetchError) }, fetchAndCopy() { this.fetch() .then((resp) => resp.headers.get("content-type") == "application/json" ? resp.json() : resp.text()) .then((value) => { window.navigator.clipboard.writeText(value) this.showCopied = true setTimeout(() => { this.showCopied = false }, 1000) }).catch(this.handleFetchError) }, }, }