matrix-react-sdk
Version:
SDK for matrix.org using React
77 lines (71 loc) • 9.11 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 = _interopRequireDefault(require("react"));
var _MImageBody = _interopRequireDefault(require("./MImageBody"));
var _imageMedia = require("../../../utils/image-media");
/*
Copyright 2018-2024 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
class MStickerBody extends _MImageBody.default {
constructor(...args) {
super(...args);
// Mostly empty to prevent default behaviour of MImageBody
(0, _defineProperty2.default)(this, "onClick", ev => {
ev.preventDefault();
if (!this.state.showImage) {
this.showImage();
}
});
}
// MStickerBody doesn't need a wrapping `<a href=...>`, but it does need extra padding
// which is added by mx_MStickerBody_wrapper
wrapImage(contentUrl, children) {
let onClick;
if (!this.state.showImage) {
onClick = this.onClick;
}
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_MStickerBody_wrapper",
onClick: onClick
}, " ", children, " ");
}
// Placeholder to show in place of the sticker image if img onLoad hasn't fired yet.
getPlaceholder(width, height) {
if (this.props.mxEvent.getContent().info?.[_imageMedia.BLURHASH_FIELD]) return super.getPlaceholder(width, height);
return /*#__PURE__*/_react.default.createElement("img", {
"aria-hidden": true,
alt: "",
className: "mx_MStickerBody_placeholder",
src: require("../../../../res/img/icons-show-stickers.svg").default,
width: "80",
height: "80",
onMouseEnter: this.onImageEnter,
onMouseLeave: this.onImageLeave
});
}
// Tooltip to show on mouse over
getTooltipProps() {
const content = this.props.mxEvent && this.props.mxEvent.getContent();
if (!content?.body || !content.info?.w) return null;
return {
placement: "right",
description: content.body
};
}
// Don't show "Download this_file.png ..."
getFileBody() {
return null;
}
getBanner(content) {
return null; // we don't need a banner, we have a tooltip
}
}
exports.default = MStickerBody;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9NSW1hZ2VCb2R5IiwiX2ltYWdlTWVkaWEiLCJNU3RpY2tlckJvZHkiLCJNSW1hZ2VCb2R5IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJldiIsInByZXZlbnREZWZhdWx0Iiwic3RhdGUiLCJzaG93SW1hZ2UiLCJ3cmFwSW1hZ2UiLCJjb250ZW50VXJsIiwiY2hpbGRyZW4iLCJvbkNsaWNrIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImdldFBsYWNlaG9sZGVyIiwid2lkdGgiLCJoZWlnaHQiLCJwcm9wcyIsIm14RXZlbnQiLCJnZXRDb250ZW50IiwiaW5mbyIsIkJMVVJIQVNIX0ZJRUxEIiwiYWx0Iiwic3JjIiwib25Nb3VzZUVudGVyIiwib25JbWFnZUVudGVyIiwib25Nb3VzZUxlYXZlIiwib25JbWFnZUxlYXZlIiwiZ2V0VG9vbHRpcFByb3BzIiwiY29udGVudCIsImJvZHkiLCJ3IiwicGxhY2VtZW50IiwiZGVzY3JpcHRpb24iLCJnZXRGaWxlQm9keSIsImdldEJhbm5lciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9NU3RpY2tlckJvZHkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50UHJvcHMsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLXdlYlwiO1xuaW1wb3J0IHsgTWVkaWFFdmVudENvbnRlbnQgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvdHlwZXNcIjtcblxuaW1wb3J0IE1JbWFnZUJvZHkgZnJvbSBcIi4vTUltYWdlQm9keVwiO1xuaW1wb3J0IHsgQkxVUkhBU0hfRklFTEQgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvaW1hZ2UtbWVkaWFcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTVN0aWNrZXJCb2R5IGV4dGVuZHMgTUltYWdlQm9keSB7XG4gICAgLy8gTW9zdGx5IGVtcHR5IHRvIHByZXZlbnQgZGVmYXVsdCBiZWhhdmlvdXIgb2YgTUltYWdlQm9keVxuICAgIHByb3RlY3RlZCBvbkNsaWNrID0gKGV2OiBSZWFjdC5Nb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5zaG93SW1hZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ltYWdlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gTVN0aWNrZXJCb2R5IGRvZXNuJ3QgbmVlZCBhIHdyYXBwaW5nIGA8YSBocmVmPS4uLj5gLCBidXQgaXQgZG9lcyBuZWVkIGV4dHJhIHBhZGRpbmdcbiAgICAvLyB3aGljaCBpcyBhZGRlZCBieSBteF9NU3RpY2tlckJvZHlfd3JhcHBlclxuICAgIHByb3RlY3RlZCB3cmFwSW1hZ2UoY29udGVudFVybDogc3RyaW5nLCBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlKTogSlNYLkVsZW1lbnQge1xuICAgICAgICBsZXQgb25DbGljazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5zaG93SW1hZ2UpIHtcbiAgICAgICAgICAgIG9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2s7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfTVN0aWNrZXJCb2R5X3dyYXBwZXJcIiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgICAgICAgICB7XCIgXCJ9XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufXtcIiBcIn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFBsYWNlaG9sZGVyIHRvIHNob3cgaW4gcGxhY2Ugb2YgdGhlIHN0aWNrZXIgaW1hZ2UgaWYgaW1nIG9uTG9hZCBoYXNuJ3QgZmlyZWQgeWV0LlxuICAgIHByb3RlY3RlZCBnZXRQbGFjZWhvbGRlcih3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IFJlYWN0Tm9kZSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm14RXZlbnQuZ2V0Q29udGVudCgpLmluZm8/LltCTFVSSEFTSF9GSUVMRF0pIHJldHVybiBzdXBlci5nZXRQbGFjZWhvbGRlcih3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfTVN0aWNrZXJCb2R5X3BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBzcmM9e3JlcXVpcmUoXCIuLi8uLi8uLi8uLi9yZXMvaW1nL2ljb25zLXNob3ctc3RpY2tlcnMuc3ZnXCIpLmRlZmF1bHR9XG4gICAgICAgICAgICAgICAgd2lkdGg9XCI4MFwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiODBcIlxuICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17dGhpcy5vbkltYWdlRW50ZXJ9XG4gICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXt0aGlzLm9uSW1hZ2VMZWF2ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVG9vbHRpcCB0byBzaG93IG9uIG1vdXNlIG92ZXJcbiAgICBwcm90ZWN0ZWQgZ2V0VG9vbHRpcFByb3BzKCk6IENvbXBvbmVudFByb3BzPHR5cGVvZiBUb29sdGlwPiB8IG51bGwge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5wcm9wcy5teEV2ZW50ICYmIHRoaXMucHJvcHMubXhFdmVudC5nZXRDb250ZW50KCk7XG5cbiAgICAgICAgaWYgKCFjb250ZW50Py5ib2R5IHx8ICFjb250ZW50LmluZm8/LncpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IFwicmlnaHRcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb250ZW50LmJvZHksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gRG9uJ3Qgc2hvdyBcIkRvd25sb2FkIHRoaXNfZmlsZS5wbmcgLi4uXCJcbiAgICBwcm90ZWN0ZWQgZ2V0RmlsZUJvZHkoKTogUmVhY3ROb2RlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEJhbm5lcihjb250ZW50OiBNZWRpYUV2ZW50Q29udGVudCk6IFJlYWN0Tm9kZSB7XG4gICAgICAgIHJldHVybiBudWxsOyAvLyB3ZSBkb24ndCBuZWVkIGEgYmFubmVyLCB3ZSBoYXZlIGEgdG9vbHRpcFxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFPQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBU2UsTUFBTUcsWUFBWSxTQUFTQyxtQkFBVSxDQUFDO0VBQUFDLFlBQUEsR0FBQUMsSUFBQTtJQUFBLFNBQUFBLElBQUE7SUFDakQ7SUFBQSxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLG1CQUNxQkMsRUFBb0IsSUFBVztNQUNoREEsRUFBRSxDQUFDQyxjQUFjLENBQUMsQ0FBQztNQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLFNBQVMsRUFBRTtRQUN2QixJQUFJLENBQUNBLFNBQVMsQ0FBQyxDQUFDO01BQ3BCO0lBQ0osQ0FBQztFQUFBO0VBRUQ7RUFDQTtFQUNVQyxTQUFTQSxDQUFDQyxVQUFrQixFQUFFQyxRQUF5QixFQUFlO0lBQzVFLElBQUlDLE9BQTRDO0lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUNMLEtBQUssQ0FBQ0MsU0FBUyxFQUFFO01BQ3ZCSSxPQUFPLEdBQUcsSUFBSSxDQUFDQSxPQUFPO0lBQzFCO0lBQ0Esb0JBQ0lsQixNQUFBLENBQUFVLE9BQUEsQ0FBQVMsYUFBQTtNQUFLQyxTQUFTLEVBQUMseUJBQXlCO01BQUNGLE9BQU8sRUFBRUE7SUFBUSxHQUNyRCxHQUFHLEVBQ0hELFFBQVEsRUFBRSxHQUNWLENBQUM7RUFFZDs7RUFFQTtFQUNVSSxjQUFjQSxDQUFDQyxLQUFhLEVBQUVDLE1BQWMsRUFBYTtJQUMvRCxJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNDLFVBQVUsQ0FBQyxDQUFDLENBQUNDLElBQUksR0FBR0MsMEJBQWMsQ0FBQyxFQUFFLE9BQU8sS0FBSyxDQUFDUCxjQUFjLENBQUNDLEtBQUssRUFBRUMsTUFBTSxDQUFDO0lBQ3RHLG9CQUNJdkIsTUFBQSxDQUFBVSxPQUFBLENBQUFTLGFBQUE7TUFDSSxtQkFBVztNQUNYVSxHQUFHLEVBQUMsRUFBRTtNQUNOVCxTQUFTLEVBQUMsNkJBQTZCO01BQ3ZDVSxHQUFHLEVBQUU1QixPQUFPLENBQUMsNkNBQTZDLENBQUMsQ0FBQ1EsT0FBUTtNQUNwRVksS0FBSyxFQUFDLElBQUk7TUFDVkMsTUFBTSxFQUFDLElBQUk7TUFDWFEsWUFBWSxFQUFFLElBQUksQ0FBQ0MsWUFBYTtNQUNoQ0MsWUFBWSxFQUFFLElBQUksQ0FBQ0M7SUFBYSxDQUNuQyxDQUFDO0VBRVY7O0VBRUE7RUFDVUMsZUFBZUEsQ0FBQSxFQUEwQztJQUMvRCxNQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDWixLQUFLLENBQUNDLE9BQU8sSUFBSSxJQUFJLENBQUNELEtBQUssQ0FBQ0MsT0FBTyxDQUFDQyxVQUFVLENBQUMsQ0FBQztJQUVyRSxJQUFJLENBQUNVLE9BQU8sRUFBRUMsSUFBSSxJQUFJLENBQUNELE9BQU8sQ0FBQ1QsSUFBSSxFQUFFVyxDQUFDLEVBQUUsT0FBTyxJQUFJO0lBRW5ELE9BQU87TUFDSEMsU0FBUyxFQUFFLE9BQU87TUFDbEJDLFdBQVcsRUFBRUosT0FBTyxDQUFDQztJQUN6QixDQUFDO0VBQ0w7O0VBRUE7RUFDVUksV0FBV0EsQ0FBQSxFQUFjO0lBQy9CLE9BQU8sSUFBSTtFQUNmO0VBRVVDLFNBQVNBLENBQUNOLE9BQTBCLEVBQWE7SUFDdkQsT0FBTyxJQUFJLENBQUMsQ0FBQztFQUNqQjtBQUNKO0FBQUNPLE9BQUEsQ0FBQWpDLE9BQUEsR0FBQUwsWUFBQSIsImlnbm9yZUxpc3QiOltdfQ==