matrix-react-sdk
Version:
SDK for matrix.org using React
113 lines (90 loc) • 13.4 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 _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