UNPKG

matrix-react-sdk

Version:
113 lines (90 loc) 13.4 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 _EmojiPicker = _interopRequireDefault(require("./EmojiPicker")); var _MatrixClientPeg = require("../../../MatrixClientPeg"); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var _replaceableComponent = require("../../../utils/replaceableComponent"); var _dec, _class, _temp; let ReactionPicker = (_dec = (0, _replaceableComponent.replaceableComponent)("views.emojipicker.ReactionPicker"), _dec(_class = (_temp = class ReactionPicker extends _react.default.Component /*:: <IProps, IState>*/ { constructor(props) { super(props); (0, _defineProperty2.default)(this, "onReactionsChange", () => { this.setState({ selectedEmojis: new Set(Object.keys(this.getReactions())) }); }); (0, _defineProperty2.default)(this, "onChoose", (reaction /*: string*/ ) => { this.componentWillUnmount(); this.props.onFinished(); const myReactions = this.getReactions(); if (myReactions.hasOwnProperty(reaction)) { _MatrixClientPeg.MatrixClientPeg.get().redactEvent(this.props.mxEvent.getRoomId(), myReactions[reaction]); // Tell the emoji picker not to bump this in the more frequently used list. return false; } else { _MatrixClientPeg.MatrixClientPeg.get().sendEvent(this.props.mxEvent.getRoomId(), "m.reaction", { "m.relates_to": { "rel_type": "m.annotation", "event_id": this.props.mxEvent.getId(), "key": reaction } }); _dispatcher.default.dispatch({ action: "message_sent" }); return true; } }); this.state = { selectedEmojis: new Set(Object.keys(this.getReactions())) }; this.addListeners(); } componentDidUpdate(prevProps) { if (prevProps.reactions !== this.props.reactions) { this.addListeners(); this.onReactionsChange(); } } addListeners() { if (this.props.reactions) { this.props.reactions.on("Relations.add", this.onReactionsChange); this.props.reactions.on("Relations.remove", this.onReactionsChange); this.props.reactions.on("Relations.redaction", this.onReactionsChange); } } componentWillUnmount() { if (this.props.reactions) { this.props.reactions.removeListener("Relations.add", this.onReactionsChange); this.props.reactions.removeListener("Relations.remove", this.onReactionsChange); this.props.reactions.removeListener("Relations.redaction", this.onReactionsChange); } } getReactions() { if (!this.props.reactions) { return {}; } const userId = _MatrixClientPeg.MatrixClientPeg.get().getUserId(); const myAnnotations = this.props.reactions.getAnnotationsBySender()[userId] || []; return Object.fromEntries([...myAnnotations].filter(event => !event.isRedacted()).map(event => [event.getRelation().key, event.getId()])); } render() { return /*#__PURE__*/_react.default.createElement(_EmojiPicker.default, { onChoose: this.onChoose, selectedEmojis: this.state.selectedEmojis, showQuickReactions: true }); } }, _temp)) || _class); var _default = ReactionPicker; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2Vtb2ppcGlja2VyL1JlYWN0aW9uUGlja2VyLnRzeCJdLCJuYW1lcyI6WyJSZWFjdGlvblBpY2tlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInNldFN0YXRlIiwic2VsZWN0ZWRFbW9qaXMiLCJTZXQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0UmVhY3Rpb25zIiwicmVhY3Rpb24iLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9uRmluaXNoZWQiLCJteVJlYWN0aW9ucyIsImhhc093blByb3BlcnR5IiwiTWF0cml4Q2xpZW50UGVnIiwiZ2V0IiwicmVkYWN0RXZlbnQiLCJteEV2ZW50IiwiZ2V0Um9vbUlkIiwic2VuZEV2ZW50IiwiZ2V0SWQiLCJkaXMiLCJkaXNwYXRjaCIsImFjdGlvbiIsInN0YXRlIiwiYWRkTGlzdGVuZXJzIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicmVhY3Rpb25zIiwib25SZWFjdGlvbnNDaGFuZ2UiLCJvbiIsInJlbW92ZUxpc3RlbmVyIiwidXNlcklkIiwiZ2V0VXNlcklkIiwibXlBbm5vdGF0aW9ucyIsImdldEFubm90YXRpb25zQnlTZW5kZXIiLCJmcm9tRW50cmllcyIsImZpbHRlciIsImV2ZW50IiwiaXNSZWRhY3RlZCIsIm1hcCIsImdldFJlbGF0aW9uIiwia2V5IiwicmVuZGVyIiwib25DaG9vc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBaUJBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOzs7O0lBYU1BLGMsV0FETCxnREFBcUIsa0NBQXJCLEMseUJBQUQsTUFDTUEsY0FETixTQUM2QkMsZUFBTUM7QUFEbkM7QUFDNkQ7QUFDekRDLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQURlLDZEQTJDUyxNQUFNO0FBQzlCLFdBQUtDLFFBQUwsQ0FBYztBQUNWQyxRQUFBQSxj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QTlDLEtBQXlELEVBQS9FO0FBQ0EsV0FBTzFCLE1BQU0sQ0FBQzhCLFdBQVAsQ0FBbUIsQ0FBQyxHQUFHRixhQUFKLEVBQ3JCRyxNQURxQixDQUNkQyxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxVQUFOLEVBREksRUFFckJDLEdBRnFCLENBRWpCRixLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDRyxXQUFOLEdBQW9CQyxHQUFyQixFQUEwQkosS0FBSyxDQUFDbEIsS0FBTixFQUExQixDQUZRLENBQW5CLENBQVA7QUFHSDs7QUFnQ0R1QixFQUFBQSxNQUFNLEdBQUc7QUFDTCx3QkFBTyw2QkFBQyxvQkFBRDtBQUNILE1BQUEsUUFBUSxFQUFFLEtBQUtDLFFBRFo7QUFFSCxNQUFBLGNBQWMsRUFBRSxLQUFLcEIsS0FBTCxDQUFXcEIsY0FGeEI7QUFHSCxNQUFBLGtCQUFrQixFQUFFO0FBSGpCLE1BQVA7QUFLSDs7QUFoRndELEM7ZUFtRjlDTixjIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDE5IFR1bGlyIEFzb2thbiA8dHVsaXJAbWF1bml1bS5uZXQ+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge01hdHJpeEV2ZW50fSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbW9kZWxzL2V2ZW50XCI7XG5cbmltcG9ydCBFbW9qaVBpY2tlciBmcm9tIFwiLi9FbW9qaVBpY2tlclwiO1xuaW1wb3J0IHtNYXRyaXhDbGllbnRQZWd9IGZyb20gXCIuLi8uLi8uLi9NYXRyaXhDbGllbnRQZWdcIjtcbmltcG9ydCBkaXMgZnJvbSBcIi4uLy4uLy4uL2Rpc3BhdGNoZXIvZGlzcGF0Y2hlclwiO1xuaW1wb3J0IHtyZXBsYWNlYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3JlcGxhY2VhYmxlQ29tcG9uZW50XCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIG14RXZlbnQ6IE1hdHJpeEV2ZW50O1xuICAgIHJlYWN0aW9uczogYW55OyAvLyBUT0RPIHR5cGUgdGhpcyBvbmNlIGpzLXNkayBpcyBtb3JlIHR5cGVzY3JpcHRlZFxuICAgIG9uRmluaXNoZWQoKTogdm9pZDtcbn1cblxuaW50ZXJmYWNlIElTdGF0ZSB7XG4gICAgc2VsZWN0ZWRFbW9qaXM6IFNldDxzdHJpbmc+O1xufVxuXG5AcmVwbGFjZWFibGVDb21wb25lbnQoXCJ2aWV3cy5lbW9qaXBpY2tlci5SZWFjdGlvblBpY2tlclwiKVxuY2xhc3MgUmVhY3Rpb25QaWNrZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHNlbGVjdGVkRW1vamlzOiBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZ2V0UmVhY3Rpb25zKCkpKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hZGRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICAgIGlmIChwcmV2UHJvcHMucmVhY3Rpb25zICE9PSB0aGlzLnByb3BzLnJlYWN0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5hZGRMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgIHRoaXMub25SZWFjdGlvbnNDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZWFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLm9uKFwiUmVsYXRpb25zLmFkZFwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLm9uKFwiUmVsYXRpb25zLnJlbW92ZVwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLm9uKFwiUmVsYXRpb25zLnJlZGFjdGlvblwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZWFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLnJlbW92ZUxpc3RlbmVyKFwiUmVsYXRpb25zLmFkZFwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLnJlbW92ZUxpc3RlbmVyKFwiUmVsYXRpb25zLnJlbW92ZVwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucmVhY3Rpb25zLnJlbW92ZUxpc3RlbmVyKFwiUmVsYXRpb25zLnJlZGFjdGlvblwiLCB0aGlzLm9uUmVhY3Rpb25zQ2hhbmdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVhY3Rpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVhY3Rpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXNlcklkID0gTWF0cml4Q2xpZW50UGVnLmdldCgpLmdldFVzZXJJZCgpO1xuICAgICAgICBjb25zdCBteUFubm90YXRpb25zID0gdGhpcy5wcm9wcy5yZWFjdGlvbnMuZ2V0QW5ub3RhdGlvbnNCeVNlbmRlcigpW3VzZXJJZF0gfHwgW107XG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoWy4uLm15QW5ub3RhdGlvbnNdXG4gICAgICAgICAgICAuZmlsdGVyKGV2ZW50ID0+ICFldmVudC5pc1JlZGFjdGVkKCkpXG4gICAgICAgICAgICAubWFwKGV2ZW50ID0+IFtldmVudC5nZXRSZWxhdGlvbigpLmtleSwgZXZlbnQuZ2V0SWQoKV0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUmVhY3Rpb25zQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNlbGVjdGVkRW1vamlzOiBuZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuZ2V0UmVhY3Rpb25zKCkpKSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uQ2hvb3NlID0gKHJlYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQoKTtcbiAgICAgICAgY29uc3QgbXlSZWFjdGlvbnMgPSB0aGlzLmdldFJlYWN0aW9ucygpO1xuICAgICAgICBpZiAobXlSZWFjdGlvbnMuaGFzT3duUHJvcGVydHkocmVhY3Rpb24pKSB7XG4gICAgICAgICAgICBNYXRyaXhDbGllbnRQZWcuZ2V0KCkucmVkYWN0RXZlbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5teEV2ZW50LmdldFJvb21JZCgpLFxuICAgICAgICAgICAgICAgIG15UmVhY3Rpb25zW3JlYWN0aW9uXSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvLyBUZWxsIHRoZSBlbW9qaSBwaWNrZXIgbm90IHRvIGJ1bXAgdGhpcyBpbiB0aGUgbW9yZSBmcmVxdWVudGx5IHVzZWQgbGlzdC5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIE1hdHJpeENsaWVudFBlZy5nZXQoKS5zZW5kRXZlbnQodGhpcy5wcm9wcy5teEV2ZW50LmdldFJvb21JZCgpLCBcIm0ucmVhY3Rpb25cIiwge1xuICAgICAgICAgICAgICAgIFwibS5yZWxhdGVzX3RvXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJyZWxfdHlwZVwiOiBcIm0uYW5ub3RhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50X2lkXCI6IHRoaXMucHJvcHMubXhFdmVudC5nZXRJZCgpLFxuICAgICAgICAgICAgICAgICAgICBcImtleVwiOiByZWFjdGlvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaXMuZGlzcGF0Y2goe2FjdGlvbjogXCJtZXNzYWdlX3NlbnRcIn0pO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPEVtb2ppUGlja2VyXG4gICAgICAgICAgICBvbkNob29zZT17dGhpcy5vbkNob29zZX1cbiAgICAgICAgICAgIHNlbGVjdGVkRW1vamlzPXt0aGlzLnN0YXRlLnNlbGVjdGVkRW1vamlzfVxuICAgICAgICAgICAgc2hvd1F1aWNrUmVhY3Rpb25zPXt0cnVlfVxuICAgICAgICAvPjtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWN0aW9uUGlja2VyO1xuIl19