matrix-react-sdk
Version:
SDK for matrix.org using React
104 lines (100 loc) • 15.2 kB
JavaScript
;
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 = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _compoundWeb = require("@vector-im/compound-web");
var _ToastStore = _interopRequireDefault(require("../../stores/ToastStore"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 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 ToastContainer extends React.Component {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "onToastStoreUpdate", () => {
this.setState({
toasts: _ToastStore.default.sharedInstance().getToasts(),
countSeen: _ToastStore.default.sharedInstance().getCountSeen()
});
});
this.state = {
toasts: _ToastStore.default.sharedInstance().getToasts(),
countSeen: _ToastStore.default.sharedInstance().getCountSeen()
};
// Start listening here rather than in componentDidMount because
// toasts may dismiss themselves in their didMount if they find
// they're already irrelevant by the time they're mounted, and
// our own componentDidMount is too late.
_ToastStore.default.sharedInstance().on("update", this.onToastStoreUpdate);
}
componentWillUnmount() {
_ToastStore.default.sharedInstance().removeListener("update", this.onToastStoreUpdate);
}
render() {
const totalCount = this.state.toasts.length;
const isStacked = totalCount > 1;
let toast;
let containerClasses;
if (totalCount !== 0) {
const topToast = this.state.toasts[0];
const {
title,
icon,
key,
component,
className,
bodyClassName,
props
} = topToast;
const bodyClasses = (0, _classnames.default)("mx_Toast_body", bodyClassName);
const toastClasses = (0, _classnames.default)("mx_Toast_toast", className, {
mx_Toast_hasIcon: icon,
[`mx_Toast_icon_${icon}`]: icon
});
const toastProps = Object.assign({}, props, {
key,
toastKey: key
});
const content = /*#__PURE__*/React.createElement(component, toastProps);
let countIndicator;
if (title && isStacked || this.state.countSeen > 0) {
countIndicator = ` (${this.state.countSeen + 1}/${this.state.countSeen + totalCount})`;
}
let titleElement;
if (title) {
titleElement = /*#__PURE__*/React.createElement("div", {
className: "mx_Toast_title"
}, /*#__PURE__*/React.createElement(_compoundWeb.Text, {
size: "lg",
weight: "semibold",
as: "h2"
}, title), /*#__PURE__*/React.createElement("span", {
className: "mx_Toast_title_countIndicator"
}, countIndicator));
}
toast = /*#__PURE__*/React.createElement("div", {
className: toastClasses
}, titleElement, /*#__PURE__*/React.createElement("div", {
className: bodyClasses
}, content));
containerClasses = (0, _classnames.default)("mx_ToastContainer", {
mx_ToastContainer_stacked: isStacked
});
}
return toast ? /*#__PURE__*/React.createElement("div", {
className: containerClasses,
role: "alert"
}, toast) : null;
}
}
exports.default = ToastContainer;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb21wb3VuZFdlYiIsIl9Ub2FzdFN0b3JlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVG9hc3RDb250YWluZXIiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5MiIsInNldFN0YXRlIiwidG9hc3RzIiwiVG9hc3RTdG9yZSIsInNoYXJlZEluc3RhbmNlIiwiZ2V0VG9hc3RzIiwiY291bnRTZWVuIiwiZ2V0Q291bnRTZWVuIiwic3RhdGUiLCJvbiIsIm9uVG9hc3RTdG9yZVVwZGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlTGlzdGVuZXIiLCJyZW5kZXIiLCJ0b3RhbENvdW50IiwibGVuZ3RoIiwiaXNTdGFja2VkIiwidG9hc3QiLCJjb250YWluZXJDbGFzc2VzIiwidG9wVG9hc3QiLCJ0aXRsZSIsImljb24iLCJrZXkiLCJjb21wb25lbnQiLCJjbGFzc05hbWUiLCJib2R5Q2xhc3NOYW1lIiwiYm9keUNsYXNzZXMiLCJjbGFzc05hbWVzIiwidG9hc3RDbGFzc2VzIiwibXhfVG9hc3RfaGFzSWNvbiIsInRvYXN0UHJvcHMiLCJhc3NpZ24iLCJ0b2FzdEtleSIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiY291bnRJbmRpY2F0b3IiLCJ0aXRsZUVsZW1lbnQiLCJUZXh0Iiwic2l6ZSIsIndlaWdodCIsImFzIiwibXhfVG9hc3RDb250YWluZXJfc3RhY2tlZCIsInJvbGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9Ub2FzdENvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLXdlYlwiO1xuXG5pbXBvcnQgVG9hc3RTdG9yZSwgeyBJVG9hc3QgfSBmcm9tIFwiLi4vLi4vc3RvcmVzL1RvYXN0U3RvcmVcIjtcblxuaW50ZXJmYWNlIElTdGF0ZSB7XG4gICAgdG9hc3RzOiBJVG9hc3Q8YW55PltdO1xuICAgIGNvdW50U2VlbjogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUb2FzdENvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDx7fSwgSVN0YXRlPiB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiB7fSkge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICB0b2FzdHM6IFRvYXN0U3RvcmUuc2hhcmVkSW5zdGFuY2UoKS5nZXRUb2FzdHMoKSxcbiAgICAgICAgICAgIGNvdW50U2VlbjogVG9hc3RTdG9yZS5zaGFyZWRJbnN0YW5jZSgpLmdldENvdW50U2VlbigpLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFN0YXJ0IGxpc3RlbmluZyBoZXJlIHJhdGhlciB0aGFuIGluIGNvbXBvbmVudERpZE1vdW50IGJlY2F1c2VcbiAgICAgICAgLy8gdG9hc3RzIG1heSBkaXNtaXNzIHRoZW1zZWx2ZXMgaW4gdGhlaXIgZGlkTW91bnQgaWYgdGhleSBmaW5kXG4gICAgICAgIC8vIHRoZXkncmUgYWxyZWFkeSBpcnJlbGV2YW50IGJ5IHRoZSB0aW1lIHRoZXkncmUgbW91bnRlZCwgYW5kXG4gICAgICAgIC8vIG91ciBvd24gY29tcG9uZW50RGlkTW91bnQgaXMgdG9vIGxhdGUuXG4gICAgICAgIFRvYXN0U3RvcmUuc2hhcmVkSW5zdGFuY2UoKS5vbihcInVwZGF0ZVwiLCB0aGlzLm9uVG9hc3RTdG9yZVVwZGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuICAgICAgICBUb2FzdFN0b3JlLnNoYXJlZEluc3RhbmNlKCkucmVtb3ZlTGlzdGVuZXIoXCJ1cGRhdGVcIiwgdGhpcy5vblRvYXN0U3RvcmVVcGRhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ub2FzdFN0b3JlVXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHRvYXN0czogVG9hc3RTdG9yZS5zaGFyZWRJbnN0YW5jZSgpLmdldFRvYXN0cygpLFxuICAgICAgICAgICAgY291bnRTZWVuOiBUb2FzdFN0b3JlLnNoYXJlZEluc3RhbmNlKCkuZ2V0Q291bnRTZWVuKCksXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGNvbnN0IHRvdGFsQ291bnQgPSB0aGlzLnN0YXRlLnRvYXN0cy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGlzU3RhY2tlZCA9IHRvdGFsQ291bnQgPiAxO1xuICAgICAgICBsZXQgdG9hc3Q7XG4gICAgICAgIGxldCBjb250YWluZXJDbGFzc2VzO1xuICAgICAgICBpZiAodG90YWxDb3VudCAhPT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdG9wVG9hc3QgPSB0aGlzLnN0YXRlLnRvYXN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IHsgdGl0bGUsIGljb24sIGtleSwgY29tcG9uZW50LCBjbGFzc05hbWUsIGJvZHlDbGFzc05hbWUsIHByb3BzIH0gPSB0b3BUb2FzdDtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlDbGFzc2VzID0gY2xhc3NOYW1lcyhcIm14X1RvYXN0X2JvZHlcIiwgYm9keUNsYXNzTmFtZSk7XG4gICAgICAgICAgICBjb25zdCB0b2FzdENsYXNzZXMgPSBjbGFzc05hbWVzKFwibXhfVG9hc3RfdG9hc3RcIiwgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgbXhfVG9hc3RfaGFzSWNvbjogaWNvbixcbiAgICAgICAgICAgICAgICBbYG14X1RvYXN0X2ljb25fJHtpY29ufWBdOiBpY29uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2FzdFByb3BzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgdG9hc3RLZXk6IGtleSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCB0b2FzdFByb3BzKTtcblxuICAgICAgICAgICAgbGV0IGNvdW50SW5kaWNhdG9yO1xuICAgICAgICAgICAgaWYgKCh0aXRsZSAmJiBpc1N0YWNrZWQpIHx8IHRoaXMuc3RhdGUuY291bnRTZWVuID4gMCkge1xuICAgICAgICAgICAgICAgIGNvdW50SW5kaWNhdG9yID0gYCAoJHt0aGlzLnN0YXRlLmNvdW50U2VlbiArIDF9LyR7dGhpcy5zdGF0ZS5jb3VudFNlZW4gKyB0b3RhbENvdW50fSlgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdGl0bGVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50ID0gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X1RvYXN0X3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBzaXplPVwibGdcIiB3ZWlnaHQ9XCJzZW1pYm9sZFwiIGFzPVwiaDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9Ub2FzdF90aXRsZV9jb3VudEluZGljYXRvclwiPntjb3VudEluZGljYXRvcn08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvYXN0ID0gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXt0b2FzdENsYXNzZXN9PlxuICAgICAgICAgICAgICAgICAgICB7dGl0bGVFbGVtZW50fVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Ym9keUNsYXNzZXN9Pntjb250ZW50fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29udGFpbmVyQ2xhc3NlcyA9IGNsYXNzTmFtZXMoXCJteF9Ub2FzdENvbnRhaW5lclwiLCB7XG4gICAgICAgICAgICAgICAgbXhfVG9hc3RDb250YWluZXJfc3RhY2tlZDogaXNTdGFja2VkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRvYXN0ID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NvbnRhaW5lckNsYXNzZXN9IHJvbGU9XCJhbGVydFwiPlxuICAgICAgICAgICAgICAgIHt0b2FzdH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksV0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQTZELFNBQUFLLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxL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