UNPKG

matrix-react-sdk

Version:
117 lines (95 loc) 14.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var sdk = _interopRequireWildcard(require("../../../index")); var _languageHandler = require("../../../languageHandler"); var _filesize = _interopRequireDefault(require("filesize")); var _replaceableComponent = require("../../../utils/replaceableComponent"); var _blobs = require("../../../utils/blobs"); var _dec, _class, _class2, _temp; let UploadConfirmDialog = (_dec = (0, _replaceableComponent.replaceableComponent)("views.dialogs.UploadConfirmDialog"), _dec(_class = (_temp = _class2 = class UploadConfirmDialog extends _react.default.Component /*:: <IProps>*/ { constructor(props) { super(props); // Create a fresh `Blob` for previewing (even though `File` already is // one) so we can adjust the MIME type if needed. (0, _defineProperty2.default)(this, "objectUrl", void 0); (0, _defineProperty2.default)(this, "mimeType", void 0); (0, _defineProperty2.default)(this, "onCancelClick", () => { this.props.onFinished(false); }); (0, _defineProperty2.default)(this, "onUploadClick", () => { this.props.onFinished(true); }); (0, _defineProperty2.default)(this, "onUploadAllClick", () => { this.props.onFinished(true, true); }); this.mimeType = (0, _blobs.getBlobSafeMimeType)(props.file.type); const blob = new Blob([props.file], { type: this.mimeType }); this.objectUrl = URL.createObjectURL(blob); } componentWillUnmount() { if (this.objectUrl) URL.revokeObjectURL(this.objectUrl); } render() { const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog'); const DialogButtons = sdk.getComponent('views.elements.DialogButtons'); let title; if (this.props.totalFiles > 1 && this.props.currentIndex !== undefined) { title = (0, _languageHandler._t)("Upload files (%(current)s of %(total)s)", { current: this.props.currentIndex + 1, total: this.props.totalFiles }); } else { title = (0, _languageHandler._t)('Upload files'); } let preview; if (this.mimeType.startsWith('image/')) { preview = /*#__PURE__*/_react.default.createElement("div", { className: "mx_UploadConfirmDialog_previewOuter" }, /*#__PURE__*/_react.default.createElement("div", { className: "mx_UploadConfirmDialog_previewInner" }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("img", { className: "mx_UploadConfirmDialog_imagePreview", src: this.objectUrl })), /*#__PURE__*/_react.default.createElement("div", null, this.props.file.name, " (", (0, _filesize.default)(this.props.file.size), ")"))); } else { preview = /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("img", { className: "mx_UploadConfirmDialog_fileIcon", src: require("../../../../res/img/feather-customised/files.svg") }), this.props.file.name, " (", (0, _filesize.default)(this.props.file.size), ")")); } let uploadAllButton; if (this.props.currentIndex + 1 < this.props.totalFiles) { uploadAllButton = /*#__PURE__*/_react.default.createElement("button", { onClick: this.onUploadAllClick }, (0, _languageHandler._t)("Upload all")); } return /*#__PURE__*/_react.default.createElement(BaseDialog, { className: "mx_UploadConfirmDialog", fixedWidth: false, onFinished: this.onCancelClick, title: title, contentId: "mx_Dialog_content" }, /*#__PURE__*/_react.default.createElement("div", { id: "mx_Dialog_content" }, preview), /*#__PURE__*/_react.default.createElement(DialogButtons, { primaryButton: (0, _languageHandler._t)('Upload'), hasCancel: false, onPrimaryButtonClick: this.onUploadClick, focus: true }, uploadAllButton)); } }, (0, _defineProperty2.default)(_class2, "defaultProps", { totalFiles: 1 }), _temp)) || _class); exports.default = UploadConfirmDialog; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvVXBsb2FkQ29uZmlybURpYWxvZy50c3giXSwibmFtZXMiOlsiVXBsb2FkQ29uZmlybURpYWxvZyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uRmluaXNoZWQiLCJtaW1lVHlwZSIsImZpbGUiLCJ0eXBlIiwiYmxvYiIsIkJsb2IiLCJvYmplY3RVcmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJldm9rZU9iamVjdFVSTCIsInJlbmRlciIsIkJhc2VEaWFsb2ciLCJzZGsiLCJnZXRDb21wb25lbnQiLCJEaWFsb2dCdXR0b25zIiwidGl0bGUiLCJ0b3RhbEZpbGVzIiwiY3VycmVudEluZGV4IiwidW5kZWZpbmVkIiwiY3VycmVudCIsInRvdGFsIiwicHJldmlldyIsInN0YXJ0c1dpdGgiLCJuYW1lIiwic2l6ZSIsInJlcXVpcmUiLCJ1cGxvYWRBbGxCdXR0b24iLCJvblVwbG9hZEFsbENsaWNrIiwib25DYW5jZWxDbGljayIsIm9uVXBsb2FkQ2xpY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFpQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7SUFVcUJBLG1CLFdBRHBCLGdEQUFxQixtQ0FBckIsQyxtQ0FBRCxNQUNxQkEsbUJBRHJCLFNBQ2lEQyxlQUFNQztBQUR2RDtBQUN5RTtBQVFyRUMsRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOLEVBRGUsQ0FHZjtBQUNBOztBQUplO0FBQUE7QUFBQSx5REFnQkssTUFBTTtBQUMxQixXQUFLQSxLQUFMLENBQVdDLFVBQVgsQ0FBc0IsS0FBdEI7QUFDSCxLQWxCa0I7QUFBQSx5REFvQkssTUFBTTtBQUMxQixXQUFLRCxLQUFMLENBQVdDLFVBQVgsQ0FBc0IsSUFBdEI7QUFDSCxLQXRCa0I7QUFBQSw0REF3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QUFDO0FBSmQsb0JBTUk7QUFBSyxNQUFBLEVBQUUsRUFBQztBQUFSLE9BQ0tNLE9BREwsQ0FOSixlQVVJLDZCQUFDLGFBQUQ7QUFBZSxNQUFBLGFBQWEsRUFBRSx5QkFBRyxRQUFILENBQTlCO0FBQ0ksTUFBQSxTQUFTLEVBQUUsS0FEZjtBQUVJLE1BQUEsb0JBQW9CLEVBQUUsS0FBS1EsYUFGL0I7QUFHSSxNQUFBLEtBQUssRUFBRTtBQUhYLE9BS0tILGVBTEwsQ0FWSixDQURKO0FBb0JIOztBQW5Hb0UsQyx5REFJL0M7QUFDbEJWLEVBQUFBLFVBQVUsRUFBRTtBQURNLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMTksIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBzZGsgZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgX3QgfSBmcm9tICcuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXInO1xuaW1wb3J0IGZpbGVzaXplIGZyb20gXCJmaWxlc2l6ZVwiO1xuaW1wb3J0IHsgcmVwbGFjZWFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVwbGFjZWFibGVDb21wb25lbnRcIjtcbmltcG9ydCB7IGdldEJsb2JTYWZlTWltZVR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ibG9icyc7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgY3VycmVudEluZGV4OiBudW1iZXI7XG4gICAgdG90YWxGaWxlcz86IG51bWJlcjtcbiAgICBvbkZpbmlzaGVkOiAodXBsb2FkQ29uZmlybWVkOiBib29sZWFuLCB1cGxvYWRBbGw/OiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG5AcmVwbGFjZWFibGVDb21wb25lbnQoXCJ2aWV3cy5kaWFsb2dzLlVwbG9hZENvbmZpcm1EaWFsb2dcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwbG9hZENvbmZpcm1EaWFsb2cgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzPiB7XG4gICAgcHJpdmF0ZSBvYmplY3RVcmw6IHN0cmluZztcbiAgICBwcml2YXRlIG1pbWVUeXBlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICB0b3RhbEZpbGVzOiAxLFxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBmcmVzaCBgQmxvYmAgZm9yIHByZXZpZXdpbmcgKGV2ZW4gdGhvdWdoIGBGaWxlYCBhbHJlYWR5IGlzXG4gICAgICAgIC8vIG9uZSkgc28gd2UgY2FuIGFkanVzdCB0aGUgTUlNRSB0eXBlIGlmIG5lZWRlZC5cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IGdldEJsb2JTYWZlTWltZVR5cGUocHJvcHMuZmlsZS50eXBlKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtwcm9wcy5maWxlXSwgeyB0eXBlOlxuICAgICAgICAgICAgdGhpcy5taW1lVHlwZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0VXJsKSBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2FuY2VsQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvcHMub25GaW5pc2hlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblVwbG9hZENsaWNrID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblVwbG9hZEFsbENsaWNrID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQodHJ1ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBCYXNlRGlhbG9nID0gc2RrLmdldENvbXBvbmVudCgndmlld3MuZGlhbG9ncy5CYXNlRGlhbG9nJyk7XG4gICAgICAgIGNvbnN0IERpYWxvZ0J1dHRvbnMgPSBzZGsuZ2V0Q29tcG9uZW50KCd2aWV3cy5lbGVtZW50cy5EaWFsb2dCdXR0b25zJyk7XG5cbiAgICAgICAgbGV0IHRpdGxlO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy50b3RhbEZpbGVzID4gMSAmJiB0aGlzLnByb3BzLmN1cnJlbnRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aXRsZSA9IF90KFxuICAgICAgICAgICAgICAgIFwiVXBsb2FkIGZpbGVzICglKGN1cnJlbnQpcyBvZiAlKHRvdGFsKXMpXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50OiB0aGlzLnByb3BzLmN1cnJlbnRJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsOiB0aGlzLnByb3BzLnRvdGFsRmlsZXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aXRsZSA9IF90KCdVcGxvYWQgZmlsZXMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwcmV2aWV3O1xuICAgICAgICBpZiAodGhpcy5taW1lVHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xuICAgICAgICAgICAgcHJldmlldyA9IDxkaXYgY2xhc3NOYW1lPVwibXhfVXBsb2FkQ29uZmlybURpYWxvZ19wcmV2aWV3T3V0ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1VwbG9hZENvbmZpcm1EaWFsb2dfcHJldmlld0lubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+PGltZyBjbGFzc05hbWU9XCJteF9VcGxvYWRDb25maXJtRGlhbG9nX2ltYWdlUHJldmlld1wiIHNyYz17dGhpcy5vYmplY3RVcmx9IC8+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3RoaXMucHJvcHMuZmlsZS5uYW1lfSAoe2ZpbGVzaXplKHRoaXMucHJvcHMuZmlsZS5zaXplKX0pPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmV2aWV3ID0gPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cIm14X1VwbG9hZENvbmZpcm1EaWFsb2dfZmlsZUljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtyZXF1aXJlKFwiLi4vLi4vLi4vLi4vcmVzL2ltZy9mZWF0aGVyLWN1c3RvbWlzZWQvZmlsZXMuc3ZnXCIpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5maWxlLm5hbWV9ICh7ZmlsZXNpemUodGhpcy5wcm9wcy5maWxlLnNpemUpfSlcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB1cGxvYWRBbGxCdXR0b247XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmN1cnJlbnRJbmRleCArIDEgPCB0aGlzLnByb3BzLnRvdGFsRmlsZXMpIHtcbiAgICAgICAgICAgIHVwbG9hZEFsbEJ1dHRvbiA9IDxidXR0b24gb25DbGljaz17dGhpcy5vblVwbG9hZEFsbENsaWNrfT5cbiAgICAgICAgICAgICAgICB7X3QoXCJVcGxvYWQgYWxsXCIpfVxuICAgICAgICAgICAgPC9idXR0b24+O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxCYXNlRGlhbG9nIGNsYXNzTmFtZT0nbXhfVXBsb2FkQ29uZmlybURpYWxvZydcbiAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBvbkZpbmlzaGVkPXt0aGlzLm9uQ2FuY2VsQ2xpY2t9XG4gICAgICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgICAgICAgIGNvbnRlbnRJZD0nbXhfRGlhbG9nX2NvbnRlbnQnXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBpZD0nbXhfRGlhbG9nX2NvbnRlbnQnPlxuICAgICAgICAgICAgICAgICAgICB7cHJldmlld31cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxEaWFsb2dCdXR0b25zIHByaW1hcnlCdXR0b249e190KCdVcGxvYWQnKX1cbiAgICAgICAgICAgICAgICAgICAgaGFzQ2FuY2VsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgb25QcmltYXJ5QnV0dG9uQ2xpY2s9e3RoaXMub25VcGxvYWRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgZm9jdXM9e3RydWV9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dXBsb2FkQWxsQnV0dG9ufVxuICAgICAgICAgICAgICAgIDwvRGlhbG9nQnV0dG9ucz5cbiAgICAgICAgICAgIDwvQmFzZURpYWxvZz5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=