UNPKG

@uploadcare/blocks

Version:

Building blocks for Uploadcare products integration

45 lines (40 loc) 1.37 kB
import { UploaderBlock } from '../../abstract/UploaderBlock.js'; import { ActivityBlock } from '../../abstract/ActivityBlock.js'; export class UrlSource extends UploaderBlock { activityType = ActivityBlock.activities.URL; init$ = { ...this.ctxInit, importDisabled: true, onUpload: () => { let url = this.ref.input['value']; this.uploadCollection.add({ externalUrl: url, }); this.$['*currentActivity'] = ActivityBlock.activities.UPLOAD_LIST; }, onCancel: () => { this.historyBack(); }, onInput: (e) => { let value = /** @type {HTMLInputElement} */ (e.target).value; this.set$({ importDisabled: !value }); }, }; initCallback() { super.initCallback(); this.registerActivity(this.activityType, { onActivate: () => { this.set$({ '*activityCaption': this.l10n('caption-from-url'), '*activityIcon': 'url', }); }, onClose: () => this.historyBack(), }); } } UrlSource.template = /* HTML */ ` <input placeholder="https://..." .url-input type="text" ref="input" set="oninput: onInput" /> <button type="button" class="url-upload-btn primary-btn" set="onclick: onUpload; @disabled: importDisabled"></button> <button type="button" class="cancel-btn secondary-btn" set="onclick: onCancel" l10n="cancel"></button> `;