UNPKG

matrix-react-sdk

Version:
139 lines (136 loc) 19.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.EditableItem = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _languageHandler = require("../../../languageHandler"); var _Field = _interopRequireDefault(require("./Field")); var _AccessibleButton = _interopRequireDefault(require("./AccessibleButton")); /* Copyright 2024 New Vector Ltd. Copyright 2017-2021 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ class EditableItem extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "state", { verifyRemove: false }); (0, _defineProperty2.default)(this, "onRemove", e => { e.stopPropagation(); e.preventDefault(); this.setState({ verifyRemove: true }); }); (0, _defineProperty2.default)(this, "onDontRemove", e => { e.stopPropagation(); e.preventDefault(); this.setState({ verifyRemove: false }); }); (0, _defineProperty2.default)(this, "onActuallyRemove", e => { e.stopPropagation(); e.preventDefault(); if (this.props.onRemove) this.props.onRemove(this.props.index); this.setState({ verifyRemove: false }); }); } render() { if (this.state.verifyRemove) { return /*#__PURE__*/_react.default.createElement("div", { className: "mx_EditableItem" }, /*#__PURE__*/_react.default.createElement("span", { className: "mx_EditableItem_promptText" }, (0, _languageHandler._t)("common|are_you_sure")), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: this.onActuallyRemove, kind: "primary_sm", className: "mx_EditableItem_confirmBtn" }, (0, _languageHandler._t)("action|yes")), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: this.onDontRemove, kind: "danger_sm", className: "mx_EditableItem_confirmBtn" }, (0, _languageHandler._t)("action|no"))); } return /*#__PURE__*/_react.default.createElement("div", { className: "mx_EditableItem" }, /*#__PURE__*/_react.default.createElement("div", { onClick: this.onRemove, className: "mx_EditableItem_delete", title: (0, _languageHandler._t)("action|remove"), role: "button" }), /*#__PURE__*/_react.default.createElement("span", { className: "mx_EditableItem_item" }, this.props.value)); } } exports.EditableItem = EditableItem; class EditableItemList extends _react.default.PureComponent { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "onItemAdded", e => { e.stopPropagation(); e.preventDefault(); this.props.onItemAdded?.(this.props.newItem); }); (0, _defineProperty2.default)(this, "onItemRemoved", index => { this.props.onItemRemoved?.(index); }); (0, _defineProperty2.default)(this, "onNewItemChanged", e => { this.props.onNewItemChanged?.(e.target.value); }); } renderNewItemField() { return /*#__PURE__*/_react.default.createElement("form", { onSubmit: this.onItemAdded, autoComplete: "off", noValidate: true, className: "mx_EditableItemList_newItem" }, /*#__PURE__*/_react.default.createElement(_Field.default, { label: this.props.placeholder, type: "text", autoComplete: "off", value: this.props.newItem || "", onChange: this.onNewItemChanged, list: this.props.suggestionsListId }), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: this.onItemAdded, kind: "primary", type: "submit", disabled: !this.props.newItem }, (0, _languageHandler._t)("action|add"))); } render() { const editableItems = this.props.items.map((item, index) => { if (!this.props.canRemove) { return /*#__PURE__*/_react.default.createElement("li", { key: item }, item); } return /*#__PURE__*/_react.default.createElement(EditableItem, { key: item, index: index, value: item, onRemove: this.onItemRemoved }); }); const editableItemsSection = this.props.canRemove ? editableItems : /*#__PURE__*/_react.default.createElement("ul", null, editableItems); const label = this.props.items.length > 0 ? this.props.itemsLabel : this.props.noItemsLabel; return /*#__PURE__*/_react.default.createElement("div", { className: "mx_EditableItemList", id: this.props.id }, /*#__PURE__*/_react.default.createElement("div", { className: "mx_EditableItemList_label" }, label), editableItemsSection, this.props.canEdit ? this.renderNewItemField() : /*#__PURE__*/_react.default.createElement("div", null)); } } exports.default = EditableItemList; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfRmllbGQiLCJfQWNjZXNzaWJsZUJ1dHRvbiIsIkVkaXRhYmxlSXRlbSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJ2ZXJpZnlSZW1vdmUiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJzZXRTdGF0ZSIsInByb3BzIiwib25SZW1vdmUiLCJpbmRleCIsInJlbmRlciIsInN0YXRlIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl90Iiwib25DbGljayIsIm9uQWN0dWFsbHlSZW1vdmUiLCJraW5kIiwib25Eb250UmVtb3ZlIiwidGl0bGUiLCJyb2xlIiwidmFsdWUiLCJleHBvcnRzIiwiRWRpdGFibGVJdGVtTGlzdCIsIlB1cmVDb21wb25lbnQiLCJvbkl0ZW1BZGRlZCIsIm5ld0l0ZW0iLCJvbkl0ZW1SZW1vdmVkIiwib25OZXdJdGVtQ2hhbmdlZCIsInRhcmdldCIsInJlbmRlck5ld0l0ZW1GaWVsZCIsIm9uU3VibWl0IiwiYXV0b0NvbXBsZXRlIiwibm9WYWxpZGF0ZSIsImxhYmVsIiwicGxhY2Vob2xkZXIiLCJ0eXBlIiwib25DaGFuZ2UiLCJsaXN0Iiwic3VnZ2VzdGlvbnNMaXN0SWQiLCJkaXNhYmxlZCIsImVkaXRhYmxlSXRlbXMiLCJpdGVtcyIsIm1hcCIsIml0ZW0iLCJjYW5SZW1vdmUiLCJrZXkiLCJlZGl0YWJsZUl0ZW1zU2VjdGlvbiIsImxlbmd0aCIsIml0ZW1zTGFiZWwiLCJub0l0ZW1zTGFiZWwiLCJpZCIsImNhbkVkaXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9FZGl0YWJsZUl0ZW1MaXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNy0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBDaGFuZ2VFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBGaWVsZCBmcm9tIFwiLi9GaWVsZFwiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24sIHsgQnV0dG9uRXZlbnQgfSBmcm9tIFwiLi9BY2Nlc3NpYmxlQnV0dG9uXCI7XG5cbmludGVyZmFjZSBJSXRlbVByb3BzIHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIG9uUmVtb3ZlPyhpbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuaW50ZXJmYWNlIElJdGVtU3RhdGUge1xuICAgIHZlcmlmeVJlbW92ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlSXRlbSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJSXRlbVByb3BzLCBJSXRlbVN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRlID0ge1xuICAgICAgICB2ZXJpZnlSZW1vdmU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwcml2YXRlIG9uUmVtb3ZlID0gKGU6IEJ1dHRvbkV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmVyaWZ5UmVtb3ZlOiB0cnVlIH0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG9uRG9udFJlbW92ZSA9IChlOiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZlcmlmeVJlbW92ZTogZmFsc2UgfSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgb25BY3R1YWxseVJlbW92ZSA9IChlOiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHRoaXMucHJvcHMub25SZW1vdmUodGhpcy5wcm9wcy5pbmRleCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2ZXJpZnlSZW1vdmU6IGZhbHNlIH0pO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnZlcmlmeVJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0VkaXRhYmxlSXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9FZGl0YWJsZUl0ZW1fcHJvbXB0VGV4dFwiPntfdChcImNvbW1vbnxhcmVfeW91X3N1cmVcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkFjdHVhbGx5UmVtb3ZlfVxuICAgICAgICAgICAgICAgICAgICAgICAga2luZD1cInByaW1hcnlfc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfRWRpdGFibGVJdGVtX2NvbmZpcm1CdG5cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258eWVzXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRG9udFJlbW92ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9XCJkYW5nZXJfc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfRWRpdGFibGVJdGVtX2NvbmZpcm1CdG5cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258bm9cIil9XG4gICAgICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9FZGl0YWJsZUl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25SZW1vdmV9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14X0VkaXRhYmxlSXRlbV9kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17X3QoXCJhY3Rpb258cmVtb3ZlXCIpfVxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14X0VkaXRhYmxlSXRlbV9pdGVtXCI+e3RoaXMucHJvcHMudmFsdWV9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGl0ZW1zOiBzdHJpbmdbXTtcbiAgICBpdGVtc0xhYmVsPzogc3RyaW5nO1xuICAgIG5vSXRlbXNMYWJlbD86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBuZXdJdGVtPzogc3RyaW5nO1xuICAgIGNhbkVkaXQ/OiBib29sZWFuO1xuICAgIGNhblJlbW92ZT86IGJvb2xlYW47XG4gICAgc3VnZ2VzdGlvbnNMaXN0SWQ/OiBzdHJpbmc7XG4gICAgb25JdGVtQWRkZWQ/KGl0ZW0/OiBzdHJpbmcpOiB2b2lkO1xuICAgIG9uSXRlbVJlbW92ZWQ/KGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIG9uTmV3SXRlbUNoYW5nZWQ/KGl0ZW06IHN0cmluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRhYmxlSXRlbUxpc3Q8UCA9IHt9PiBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzICYgUD4ge1xuICAgIHByb3RlY3RlZCBvbkl0ZW1BZGRlZCA9IChlOiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5wcm9wcy5vbkl0ZW1BZGRlZD8uKHRoaXMucHJvcHMubmV3SXRlbSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBvbkl0ZW1SZW1vdmVkID0gKGluZGV4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkl0ZW1SZW1vdmVkPy4oaW5kZXgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgb25OZXdJdGVtQ2hhbmdlZCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50Pik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uTmV3SXRlbUNoYW5nZWQ/LihlLnRhcmdldC52YWx1ZSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCByZW5kZXJOZXdJdGVtRmllbGQoKTogSlNYLkVsZW1lbnQge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5vbkl0ZW1BZGRlZH1cbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIG5vVmFsaWRhdGU9e3RydWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfRWRpdGFibGVJdGVtTGlzdF9uZXdJdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RmllbGRcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMucHJvcHMubmV3SXRlbSB8fCBcIlwifVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbk5ld0l0ZW1DaGFuZ2VkfVxuICAgICAgICAgICAgICAgICAgICBsaXN0PXt0aGlzLnByb3BzLnN1Z2dlc3Rpb25zTGlzdElkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkl0ZW1BZGRlZH1cbiAgICAgICAgICAgICAgICAgICAga2luZD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF0aGlzLnByb3BzLm5ld0l0ZW19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7X3QoXCJhY3Rpb258YWRkXCIpfVxuICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlSXRlbXMgPSB0aGlzLnByb3BzLml0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9wcy5jYW5SZW1vdmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPGxpIGtleT17aXRlbX0+e2l0ZW19PC9saT47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiA8RWRpdGFibGVJdGVtIGtleT17aXRlbX0gaW5kZXg9e2luZGV4fSB2YWx1ZT17aXRlbX0gb25SZW1vdmU9e3RoaXMub25JdGVtUmVtb3ZlZH0gLz47XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGVkaXRhYmxlSXRlbXNTZWN0aW9uID0gdGhpcy5wcm9wcy5jYW5SZW1vdmUgPyBlZGl0YWJsZUl0ZW1zIDogPHVsPntlZGl0YWJsZUl0ZW1zfTwvdWw+O1xuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMucHJvcHMuaXRlbXMubGVuZ3RoID4gMCA/IHRoaXMucHJvcHMuaXRlbXNMYWJlbCA6IHRoaXMucHJvcHMubm9JdGVtc0xhYmVsO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0VkaXRhYmxlSXRlbUxpc3RcIiBpZD17dGhpcy5wcm9wcy5pZH0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9FZGl0YWJsZUl0ZW1MaXN0X2xhYmVsXCI+e2xhYmVsfTwvZGl2PlxuICAgICAgICAgICAgICAgIHtlZGl0YWJsZUl0ZW1zU2VjdGlvbn1cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5FZGl0ID8gdGhpcy5yZW5kZXJOZXdJdGVtRmllbGQoKSA6IDxkaXYgLz59XG4g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