UNPKG

matrix-react-sdk

Version:
94 lines (91 loc) 13.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _languageHandler = require("../../../languageHandler"); var _BaseDialog = _interopRequireDefault(require("./BaseDialog")); var _DialogButtons = _interopRequireDefault(require("../elements/DialogButtons")); var _FileUtils = require("../../../utils/FileUtils"); /* Copyright 2019-2024 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /* * Tells the user about files we know cannot be uploaded before we even try uploading * them. This is named fairly generically but the only thing we check right now is * the size of the file. */ class UploadFailureDialog extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "onCancelClick", () => { this.props.onFinished(false); }); (0, _defineProperty2.default)(this, "onUploadClick", () => { this.props.onFinished(true); }); } render() { let message; let preview; let buttons; if (this.props.totalFiles === 1 && this.props.badFiles.length === 1) { message = (0, _languageHandler._t)("upload_file|error_file_too_large", { limit: (0, _FileUtils.fileSize)(this.props.contentMessages.getUploadLimit()), sizeOfThisFile: (0, _FileUtils.fileSize)(this.props.badFiles[0].size) }, { b: sub => /*#__PURE__*/_react.default.createElement("strong", null, sub) }); buttons = /*#__PURE__*/_react.default.createElement(_DialogButtons.default, { primaryButton: (0, _languageHandler._t)("action|ok"), hasCancel: false, onPrimaryButtonClick: this.onCancelClick, focus: true }); } else if (this.props.totalFiles === this.props.badFiles.length) { message = (0, _languageHandler._t)("upload_file|error_files_too_large", { limit: (0, _FileUtils.fileSize)(this.props.contentMessages.getUploadLimit()) }, { b: sub => /*#__PURE__*/_react.default.createElement("strong", null, sub) }); buttons = /*#__PURE__*/_react.default.createElement(_DialogButtons.default, { primaryButton: (0, _languageHandler._t)("action|ok"), hasCancel: false, onPrimaryButtonClick: this.onCancelClick, focus: true }); } else { message = (0, _languageHandler._t)("upload_file|error_some_files_too_large", { limit: (0, _FileUtils.fileSize)(this.props.contentMessages.getUploadLimit()) }, { b: sub => /*#__PURE__*/_react.default.createElement("strong", null, sub) }); const howManyOthers = this.props.totalFiles - this.props.badFiles.length; buttons = /*#__PURE__*/_react.default.createElement(_DialogButtons.default, { primaryButton: (0, _languageHandler._t)("upload_file|upload_n_others_button", { count: howManyOthers }), onPrimaryButtonClick: this.onUploadClick, hasCancel: true, cancelButton: (0, _languageHandler._t)("upload_file|cancel_all_button"), onCancel: this.onCancelClick, focus: true }); } return /*#__PURE__*/_react.default.createElement(_BaseDialog.default, { className: "mx_UploadFailureDialog", onFinished: this.onCancelClick, title: (0, _languageHandler._t)("upload_file|error_title"), contentId: "mx_Dialog_content" }, /*#__PURE__*/_react.default.createElement("div", { id: "mx_Dialog_content" }, message, preview), buttons); } } exports.default = UploadFailureDialog; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfQmFzZURpYWxvZyIsIl9EaWFsb2dCdXR0b25zIiwiX0ZpbGVVdGlscyIsIlVwbG9hZEZhaWx1cmVEaWFsb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJncyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwicHJvcHMiLCJvbkZpbmlzaGVkIiwicmVuZGVyIiwibWVzc2FnZSIsInByZXZpZXciLCJidXR0b25zIiwidG90YWxGaWxlcyIsImJhZEZpbGVzIiwibGVuZ3RoIiwiX3QiLCJsaW1pdCIsImZpbGVTaXplIiwiY29udGVudE1lc3NhZ2VzIiwiZ2V0VXBsb2FkTGltaXQiLCJzaXplT2ZUaGlzRmlsZSIsInNpemUiLCJiIiwic3ViIiwiY3JlYXRlRWxlbWVudCIsInByaW1hcnlCdXR0b24iLCJoYXNDYW5jZWwiLCJvblByaW1hcnlCdXR0b25DbGljayIsIm9uQ2FuY2VsQ2xpY2siLCJmb2N1cyIsImhvd01hbnlPdGhlcnMiLCJjb3VudCIsIm9uVXBsb2FkQ2xpY2siLCJjYW5jZWxCdXR0b24iLCJvbkNhbmNlbCIsImNsYXNzTmFtZSIsInRpdGxlIiwiY29udGVudElkIiwiaWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9VcGxvYWRGYWlsdXJlRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBDb250ZW50TWVzc2FnZXMgZnJvbSBcIi4uLy4uLy4uL0NvbnRlbnRNZXNzYWdlc1wiO1xuaW1wb3J0IEJhc2VEaWFsb2cgZnJvbSBcIi4vQmFzZURpYWxvZ1wiO1xuaW1wb3J0IERpYWxvZ0J1dHRvbnMgZnJvbSBcIi4uL2VsZW1lbnRzL0RpYWxvZ0J1dHRvbnNcIjtcbmltcG9ydCB7IGZpbGVTaXplIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL0ZpbGVVdGlsc1wiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBiYWRGaWxlczogRmlsZVtdO1xuICAgIHRvdGFsRmlsZXM6IG51bWJlcjtcbiAgICBjb250ZW50TWVzc2FnZXM6IENvbnRlbnRNZXNzYWdlcztcbiAgICBvbkZpbmlzaGVkKHVwbG9hZD86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKlxuICogVGVsbHMgdGhlIHVzZXIgYWJvdXQgZmlsZXMgd2Uga25vdyBjYW5ub3QgYmUgdXBsb2FkZWQgYmVmb3JlIHdlIGV2ZW4gdHJ5IHVwbG9hZGluZ1xuICogdGhlbS4gVGhpcyBpcyBuYW1lZCBmYWlybHkgZ2VuZXJpY2FsbHkgYnV0IHRoZSBvbmx5IHRoaW5nIHdlIGNoZWNrIHJpZ2h0IG5vdyBpc1xuICogdGhlIHNpemUgb2YgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwbG9hZEZhaWx1cmVEaWFsb2cgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzPiB7XG4gICAgcHJpdmF0ZSBvbkNhbmNlbENsaWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQoZmFsc2UpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG9uVXBsb2FkQ2xpY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMucHJvcHMub25GaW5pc2hlZCh0cnVlKTtcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgbGV0IHByZXZpZXc7XG4gICAgICAgIGxldCBidXR0b25zO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy50b3RhbEZpbGVzID09PSAxICYmIHRoaXMucHJvcHMuYmFkRmlsZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gX3QoXG4gICAgICAgICAgICAgICAgXCJ1cGxvYWRfZmlsZXxlcnJvcl9maWxlX3Rvb19sYXJnZVwiLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGltaXQ6IGZpbGVTaXplKHRoaXMucHJvcHMuY29udGVudE1lc3NhZ2VzLmdldFVwbG9hZExpbWl0KCkhKSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZU9mVGhpc0ZpbGU6IGZpbGVTaXplKHRoaXMucHJvcHMuYmFkRmlsZXNbMF0uc2l6ZSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGI6IChzdWIpID0+IDxzdHJvbmc+e3N1Yn08L3N0cm9uZz4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBidXR0b25zID0gKFxuICAgICAgICAgICAgICAgIDxEaWFsb2dCdXR0b25zXG4gICAgICAgICAgICAgICAgICAgIHByaW1hcnlCdXR0b249e190KFwiYWN0aW9ufG9rXCIpfVxuICAgICAgICAgICAgICAgICAgICBoYXNDYW5jZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBvblByaW1hcnlCdXR0b25DbGljaz17dGhpcy5vbkNhbmNlbENsaWNrfVxuICAgICAgICAgICAgICAgICAgICBmb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnRvdGFsRmlsZXMgPT09IHRoaXMucHJvcHMuYmFkRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gX3QoXG4gICAgICAgICAgICAgICAgXCJ1cGxvYWRfZmlsZXxlcnJvcl9maWxlc190b29fbGFyZ2VcIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxpbWl0OiBmaWxlU2l6ZSh0aGlzLnByb3BzLmNvbnRlbnRNZXNzYWdlcy5nZXRVcGxvYWRMaW1pdCgpISksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGI6IChzdWIpID0+IDxzdHJvbmc+e3N1Yn08L3N0cm9uZz4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBidXR0b25zID0gKFxuICAgICAgICAgICAgICAgIDxEaWFsb2dCdXR0b25zXG4gICAgICAgICAgICAgICAgICAgIHByaW1hcnlCdXR0b249e190KFwiYWN0aW9ufG9rXCIpfVxuICAgICAgICAgICAgICAgICAgICBoYXNDYW5jZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBvblByaW1hcnlCdXR0b25DbGljaz17dGhpcy5vbkNhbmNlbENsaWNrfVxuICAgICAgICAgICAgICAgICAgICBmb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBfdChcbiAgICAgICAgICAgICAgICBcInVwbG9hZF9maWxlfGVycm9yX3NvbWVfZmlsZXNfdG9vX2xhcmdlXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsaW1pdDogZmlsZVNpemUodGhpcy5wcm9wcy5jb250ZW50TWVzc2FnZXMuZ2V0VXBsb2FkTGltaXQoKSEpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiOiAoc3ViKSA9PiA8c3Ryb25nPntzdWJ9PC9zdHJvbmc+LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaG93TWFueU90aGVycyA9IHRoaXMucHJvcHMudG90YWxGaWxlcyAtIHRoaXMucHJvcHMuYmFkRmlsZXMubGVuZ3RoO1xuICAgICAgICAgICAgYnV0dG9ucyA9IChcbiAgICAgICAgICAgICAgICA8RGlhbG9nQnV0dG9uc1xuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5QnV0dG9uPXtfdChcInVwbG9hZF9maWxlfHVwbG9hZF9uX290aGVyc19idXR0b25cIiwgeyBjb3VudDogaG93TWFueU90aGVycyB9KX1cbiAgICAgICAgICAgICAgICAgICAgb25QcmltYXJ5QnV0dG9uQ2xpY2s9e3RoaXMub25VcGxvYWRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgaGFzQ2FuY2VsPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxCdXR0b249e190KFwidXBsb2FkX2ZpbGV8Y2FuY2VsX2FsbF9idXR0b25cIil9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLm9uQ2FuY2VsQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxCYXNlRGlhbG9nXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfVXBsb2FkRmFpbHVyZURpYWxvZ1wiXG4gICAgICAgICAgICAgICAgb25GaW5pc2hlZD17dGhpcy5vbkNhbmNlbENsaWNrfVxuICAgICAgICAgICAgICAgIHRpdGxlPXtfdChcInVwbG9hZF9maWxlfGVycm9yX3RpdGxlXCIpfVxuICAgICAgICAgICAgICAgIGNvbnRlbnRJZD1cIm14X0RpYWxvZ19jb250ZW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibXhfRGlhbG9nX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAge21lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIHtwcmV2aWV3fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAge2J1dHRvbnN9XG4gICAgICAgICAgICA8L0Jhc2VEaWFsb2c+XG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQU9BLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxNQUFNSyxtQkFBbUIsU0FBU0MsY0FBSyxDQUFDQyxTQUFTLENBQVM7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUEseUJBQzdDLE1BQVk7TUFDaEMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUFBLElBQUFILGdCQUFBLENBQUFDLE9BQUEseUJBRXVCLE1BQVk7TUFDaEMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztFQUFBO0VBRU1DLE1BQU1BLENBQUEsRUFBb0I7SUFDN0IsSUFBSUMsT0FBTztJQUNYLElBQUlDLE9BQU87SUFDWCxJQUFJQyxPQUFPO0lBQ1gsSUFBSSxJQUFJLENBQUNMLEtBQUssQ0FBQ00sVUFBVSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUNOLEtBQUssQ0FB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