matrix-react-sdk
Version:
SDK for matrix.org using React
94 lines (91 loc) • 13.9 kB
JavaScript
"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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