import { View } from 'framework/views/view'; import { Shortcuts } from 'comp/app/shortcuts'; import { Features } from 'util/features'; import template from 'templates/details/details-attachment.hbs'; class DetailsAttachmentView extends View { template = template; events = { 'click .details__subview-close': 'closeAttachment', 'click .details__attachment-preview-download-btn': 'downloadAttachment' }; render(complete) { super.render({ isMobile: Features.isMobile }); const shortcut = this.$el.find('.details__attachment-preview-download-text-shortcut'); shortcut.text(Shortcuts.actionShortcutSymbol()); const blob = new Blob([this.model.getBinary()], { type: this.model.mimeType }); const dataEl = this.$el.find('.details__attachment-preview-data'); switch ((this.model.mimeType || '').split('/')[0]) { case 'text': { const reader = new FileReader(); reader.addEventListener('loadend', () => { $('
').text(reader.result).appendTo(dataEl);
                    complete();
                });
                reader.readAsText(blob);
                return;
            }
            case 'image':
                $('').attr('src', URL.createObjectURL(blob)).appendTo(dataEl);
                complete();
                return;
        }
        this.$el.addClass('details__attachment-preview--empty');
        this.$el.find('.details__attachment-preview-icon').addClass('fa-' + this.model.icon);
        complete();
    }

    downloadAttachment() {
        this.emit('download');
    }

    closeAttachment() {
        this.emit('close');
    }
}

export { DetailsAttachmentView };