matrix-react-sdk
Version:
SDK for matrix.org using React
117 lines (114 loc) • 13.2 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 _Spinner = _interopRequireDefault(require("./Spinner"));
var _EditableText = _interopRequireDefault(require("./EditableText"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* A component which wraps an EditableText, with a spinner while updates take
* place.
*
* Parent components should supply an 'onSubmit' callback which returns a
* promise; a spinner is shown until the promise resolves.
*
* The parent can also supply a 'getInitialValue' callback, which works in a
* similarly asynchronous way. If this is not provided, the initial value is
* taken from the 'initialValue' property.
*/
class EditableTextContainer extends _react.default.Component {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "unmounted", false);
(0, _defineProperty2.default)(this, "onValueChanged", (value, shouldSubmit) => {
if (!shouldSubmit) {
return;
}
this.setState({
busy: true,
errorString: null
});
this.props.onSubmit(value).then(() => {
if (this.unmounted) {
return;
}
this.setState({
busy: false,
value: value
});
}, error => {
if (this.unmounted) {
return;
}
this.setState({
errorString: error.toString(),
busy: false
});
});
});
this.state = {
busy: false,
errorString: null,
value: props.initialValue ?? ""
};
}
async componentDidMount() {
// use whatever was given in the initialValue property.
if (this.props.getInitialValue === undefined) return;
this.setState({
busy: true
});
try {
const initialValue = await this.props.getInitialValue();
if (this.unmounted) return;
this.setState({
busy: false,
value: initialValue
});
} catch (error) {
if (this.unmounted) return;
this.setState({
errorString: error instanceof Error ? error.message : String(error),
busy: false
});
}
}
componentWillUnmount() {
this.unmounted = true;
}
render() {
if (this.state.busy) {
return /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
} else if (this.state.errorString) {
return /*#__PURE__*/_react.default.createElement("div", {
className: "error"
}, this.state.errorString);
} else {
return /*#__PURE__*/_react.default.createElement(_EditableText.default, {
initialValue: this.state.value,
placeholder: this.props.placeholder,
onValueChanged: this.onValueChanged,
blurToSubmit: this.props.blurToSubmit
});
}
}
}
exports.default = EditableTextContainer;
(0, _defineProperty2.default)(EditableTextContainer, "defaultProps", {
initialValue: "",
placeholder: "",
blurToSubmit: false,
onSubmit: () => {
return Promise.resolve();
}
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9TcGlubmVyIiwiX0VkaXRhYmxlVGV4dCIsIkVkaXRhYmxlVGV4dENvbnRhaW5lciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwidmFsdWUiLCJzaG91bGRTdWJtaXQiLCJzZXRTdGF0ZSIsImJ1c3kiLCJlcnJvclN0cmluZyIsIm9uU3VibWl0IiwidGhlbiIsInVubW91bnRlZCIsImVycm9yIiwidG9TdHJpbmciLCJzdGF0ZSIsImluaXRpYWxWYWx1ZSIsImNvbXBvbmVudERpZE1vdW50IiwiZ2V0SW5pdGlhbFZhbHVlIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJtZXNzYWdlIiwiU3RyaW5nIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicGxhY2Vob2xkZXIiLCJvblZhbHVlQ2hhbmdlZCIsImJsdXJUb1N1Ym1pdCIsImV4cG9ydHMiLCJQcm9taXNlIiwicmVzb2x2ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL0VkaXRhYmxlVGV4dENvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgU3Bpbm5lciBmcm9tIFwiLi9TcGlubmVyXCI7XG5pbXBvcnQgRWRpdGFibGVUZXh0IGZyb20gXCIuL0VkaXRhYmxlVGV4dFwiO1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICAvKiBjYWxsYmFjayB0byByZXRyaWV2ZSB0aGUgaW5pdGlhbCB2YWx1ZS4gKi9cbiAgICBnZXRJbml0aWFsVmFsdWU/OiAoKSA9PiBQcm9taXNlPHN0cmluZz47XG5cbiAgICAvKiBpbml0aWFsIHZhbHVlOyB1c2VkIGlmIGdldEluaXRpYWxWYWx1ZSBpcyBub3QgZ2l2ZW4gKi9cbiAgICBpbml0aWFsVmFsdWU/OiBzdHJpbmc7XG5cbiAgICAvKiBwbGFjZWhvbGRlciB0ZXh0IHRvIHVzZSB3aGVuIHRoZSB2YWx1ZSBpcyBlbXB0eSAoYW5kIG5vdCBiZWluZ1xuICAgICAqIGVkaXRlZCkgKi9cbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIC8qIGNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgdmFsdWUuIENhbGxlZCB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50OiB0aGUgbmV3XG4gICAgICogdmFsdWUuICovXG4gICAgb25TdWJtaXQ6ICh2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNlPHt9IHwgdm9pZD47XG5cbiAgICAvKiBzaG91bGQgdGhlIGlucHV0IHN1Ym1pdCB3aGVuIGZvY3VzIGlzIGxvc3Q/ICovXG4gICAgYmx1clRvU3VibWl0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIElTdGF0ZSB7XG4gICAgYnVzeTogYm9vbGVhbjtcbiAgICBlcnJvclN0cmluZzogc3RyaW5nIHwgbnVsbDtcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IHdoaWNoIHdyYXBzIGFuIEVkaXRhYmxlVGV4dCwgd2l0aCBhIHNwaW5uZXIgd2hpbGUgdXBkYXRlcyB0YWtlXG4gKiBwbGFjZS5cbiAqXG4gKiBQYXJlbnQgY29tcG9uZW50cyBzaG91bGQgc3VwcGx5IGFuICdvblN1Ym1pdCcgY2FsbGJhY2sgd2hpY2ggcmV0dXJucyBhXG4gKiBwcm9taXNlOyBhIHNwaW5uZXIgaXMgc2hvd24gdW50aWwgdGhlIHByb21pc2UgcmVzb2x2ZXMuXG4gKlxuICogVGhlIHBhcmVudCBjYW4gYWxzbyBzdXBwbHkgYSAnZ2V0SW5pdGlhbFZhbHVlJyBjYWxsYmFjaywgd2hpY2ggd29ya3MgaW4gYVxuICogc2ltaWxhcmx5IGFzeW5jaHJvbm91cyB3YXkuIElmIHRoaXMgaXMgbm90IHByb3ZpZGVkLCB0aGUgaW5pdGlhbCB2YWx1ZSBpc1xuICogdGFrZW4gZnJvbSB0aGUgJ2luaXRpYWxWYWx1ZScgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRhYmxlVGV4dENvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIElTdGF0ZT4ge1xuICAgIHByaXZhdGUgdW5tb3VudGVkID0gZmFsc2U7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IFBhcnRpYWw8SVByb3BzPiA9IHtcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBcIlwiLFxuICAgICAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICAgICAgYmx1clRvU3VibWl0OiBmYWxzZSxcbiAgICAgICAgb25TdWJtaXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBidXN5OiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yU3RyaW5nOiBudWxsLFxuICAgICAgICAgICAgdmFsdWU6IHByb3BzLmluaXRpYWxWYWx1ZSA/PyBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb21wb25lbnREaWRNb3VudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gdXNlIHdoYXRldmVyIHdhcyBnaXZlbiBpbiB0aGUgaW5pdGlhbFZhbHVlIHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5wcm9wcy5nZXRJbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBidXN5OiB0cnVlIH0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gYXdhaXQgdGhpcy5wcm9wcy5nZXRJbml0aWFsVmFsdWUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnVubW91bnRlZCkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgYnVzeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKHRoaXMudW5tb3VudGVkKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBlcnJvclN0cmluZzogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxuICAgICAgICAgICAgICAgIGJ1c3k6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5tb3VudGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uVmFsdWVDaGFuZ2VkID0gKHZhbHVlOiBzdHJpbmcsIHNob3VsZFN1Ym1pdDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIXNob3VsZFN1Ym1pdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBidXN5OiB0cnVlLFxuICAgICAgICAgICAgZXJyb3JTdHJpbmc6IG51bGwsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucHJvcHMub25TdWJtaXQodmFsdWUpLnRoZW4oXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudW5tb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGJ1c3k6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudW5tb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yU3RyaW5nOiBlcnJvci50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBidXN5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVzeSkge1xuICAgICAgICAgICAgcmV0dXJuIDxTcGlubmVyIC8+O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuZXJyb3JTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImVycm9yXCI+e3RoaXMuc3RhdGUuZXJyb3JTdHJpbmd9PC9kaXY+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RWRpdGFibGVUZXh0XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZT17dGhpcy5zdGF0ZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2VkPXt0aGlzLm9uVmFsdWVDaGFuZ2VkfVxuICAgICAgICAgICAgICAgICAgICBibHVyVG9TdWJtaXQ9e3RoaXMucHJvcHMuYmx1clRvU3VibWl0fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBTUcscUJBQXFCLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFpQjtFQVd4RUMsV0FBV0EsQ0FBQ0MsS0FBYSxFQUFFO0lBQzlCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxxQkFYRyxLQUFLO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQSwwQkE2Q0EsQ0FBQ0MsS0FBYSxFQUFFQyxZQUFxQixLQUFXO01BQ3JFLElBQUksQ0FBQ0EsWUFBWSxFQUFFO1FBQ2Y7TUFDSjtNQUVBLElBQUksQ0FBQ0MsUUFBUSxDQUFDO1FBQ1ZDLElBQUksRUFBRSxJQUFJO1FBQ1ZDLFdBQVcsRUFBRTtNQUNqQixDQUFDLENBQUM7TUFFRixJQUFJLENBQUNQLEtB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