matrix-react-sdk
Version:
SDK for matrix.org using React
81 lines (77 loc) • 11.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _location = require("../../../../res/img/element-icons/location.svg");
var _FormattingUtils = require("../../../utils/FormattingUtils");
var _MemberAvatar = _interopRequireDefault(require("../avatars/MemberAvatar"));
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 2022 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.
*/
/**
* Wrap with tooltip handlers when
* tooltip is truthy
*/
const OptionalTooltip = ({
tooltip,
children
}) => {
const [isVisible, setIsVisible] = (0, _react.useState)(false);
if (!tooltip) {
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
}
const show = () => setIsVisible(true);
const hide = () => setIsVisible(false);
const toggleVisibility = e => {
// stop map from zooming in on click
e.stopPropagation();
setIsVisible(!isVisible);
};
return /*#__PURE__*/_react.default.createElement("div", {
onMouseEnter: show,
onClick: toggleVisibility,
onMouseLeave: hide
}, children, isVisible && tooltip);
};
/**
* Generic location marker
*/
const Marker = /*#__PURE__*/_react.default.forwardRef(({
id,
roomMember,
useMemberColor,
tooltip
}, ref) => {
const memberColorClass = useMemberColor && roomMember ? (0, _FormattingUtils.getUserNameColorClass)(roomMember.userId) : "";
return /*#__PURE__*/_react.default.createElement("div", {
ref: ref,
id: id,
className: (0, _classnames.default)("mx_Marker", memberColorClass, {
mx_Marker_defaultColor: !memberColorClass
})
}, /*#__PURE__*/_react.default.createElement(OptionalTooltip, {
tooltip: tooltip
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_Marker_border"
}, roomMember ? /*#__PURE__*/_react.default.createElement(_MemberAvatar.default, {
member: roomMember,
size: "36px",
viewUserOnClick: false
// no mxid on hover when marker has tooltip
,
hideTitle: !!tooltip
}) : /*#__PURE__*/_react.default.createElement(_location.Icon, {
className: "mx_Marker_icon"
}))));
});
var _default = exports.default = Marker;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYXRpb24iLCJfRm9ybWF0dGluZ1V0aWxzIiwiX01lbWJlckF2YXRhciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIk9wdGlvbmFsVG9vbHRpcCIsInRvb2x0aXAiLCJjaGlsZHJlbiIsImlzVmlzaWJsZSIsInNldElzVmlzaWJsZSIsInVzZVN0YXRlIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50Iiwic2hvdyIsImhpZGUiLCJ0b2dnbGVWaXNpYmlsaXR5Iiwic3RvcFByb3BhZ2F0aW9uIiwib25Nb3VzZUVudGVyIiwib25DbGljayIsIm9uTW91c2VMZWF2ZSIsIk1hcmtlciIsIlJlYWN0IiwiZm9yd2FyZFJlZiIsImlkIiwicm9vbU1lbWJlciIsInVzZU1lbWJlckNvbG9yIiwicmVmIiwibWVtYmVyQ29sb3JDbGFzcyIsImdldFVzZXJOYW1lQ29sb3JDbGFzcyIsInVzZXJJZCIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJteF9NYXJrZXJfZGVmYXVsdENvbG9yIiwibWVtYmVyIiwic2l6ZSIsInZpZXdVc2VyT25DbGljayIsImhpZGVUaXRsZSIsIkljb24iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9NYXJrZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgUm9vbU1lbWJlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgSWNvbiBhcyBMb2NhdGlvbkljb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vcmVzL2ltZy9lbGVtZW50LWljb25zL2xvY2F0aW9uLnN2Z1wiO1xuaW1wb3J0IHsgZ2V0VXNlck5hbWVDb2xvckNsYXNzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL0Zvcm1hdHRpbmdVdGlsc1wiO1xuaW1wb3J0IE1lbWJlckF2YXRhciBmcm9tIFwiLi4vYXZhdGFycy9NZW1iZXJBdmF0YXJcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICBpZD86IHN0cmluZztcbiAgICAvLyByZW5kZXJzIE1lbWJlckF2YXRhciB3aGVuIHByb3ZpZGVkXG4gICAgcm9vbU1lbWJlcj86IFJvb21NZW1iZXI7XG4gICAgLy8gdXNlIG1lbWJlciB0ZXh0IGNvbG9yIGFzIGJhY2tncm91bmRcbiAgICB1c2VNZW1iZXJDb2xvcj86IGJvb2xlYW47XG4gICAgdG9vbHRpcD86IFJlYWN0Tm9kZTtcbn1cblxuLyoqXG4gKiBXcmFwIHdpdGggdG9vbHRpcCBoYW5kbGVycyB3aGVuXG4gKiB0b29sdGlwIGlzIHRydXRoeVxuICovXG5jb25zdCBPcHRpb25hbFRvb2x0aXA6IFJlYWN0LkZDPHtcbiAgICB0b29sdGlwPzogUmVhY3ROb2RlO1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59PiA9ICh7IHRvb2x0aXAsIGNoaWxkcmVuIH0pID0+IHtcbiAgICBjb25zdCBbaXNWaXNpYmxlLCBzZXRJc1Zpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGlmICghdG9vbHRpcCkge1xuICAgICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xuICAgIH1cblxuICAgIGNvbnN0IHNob3cgPSAoKTogdm9pZCA9PiBzZXRJc1Zpc2libGUodHJ1ZSk7XG4gICAgY29uc3QgaGlkZSA9ICgpOiB2b2lkID0+IHNldElzVmlzaWJsZShmYWxzZSk7XG4gICAgY29uc3QgdG9nZ2xlVmlzaWJpbGl0eSA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50LCBNb3VzZUV2ZW50Pik6IHZvaWQgPT4ge1xuICAgICAgICAvLyBzdG9wIG1hcCBmcm9tIHpvb21pbmcgaW4gb24gY2xpY2tcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2V0SXNWaXNpYmxlKCFpc1Zpc2libGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IG9uTW91c2VFbnRlcj17c2hvd30gb25DbGljaz17dG9nZ2xlVmlzaWJpbGl0eX0gb25Nb3VzZUxlYXZlPXtoaWRlfT5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIHtpc1Zpc2libGUgJiYgdG9vbHRpcH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbi8qKlxuICogR2VuZXJpYyBsb2NhdGlvbiBtYXJrZXJcbiAqL1xuY29uc3QgTWFya2VyID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgUHJvcHM+KCh7IGlkLCByb29tTWVtYmVyLCB1c2VNZW1iZXJDb2xvciwgdG9vbHRpcCB9LCByZWYpID0+IHtcbiAgICBjb25zdCBtZW1iZXJDb2xvckNsYXNzID0gdXNlTWVtYmVyQ29sb3IgJiYgcm9vbU1lbWJlciA/IGdldFVzZXJOYW1lQ29sb3JDbGFzcyhyb29tTWVtYmVyLnVzZXJJZCkgOiBcIlwiO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFwibXhfTWFya2VyXCIsIG1lbWJlckNvbG9yQ2xhc3MsIHtcbiAgICAgICAgICAgICAgICBteF9NYXJrZXJfZGVmYXVsdENvbG9yOiAhbWVtYmVyQ29sb3JDbGFzcyxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgICA8T3B0aW9uYWxUb29sdGlwIHRvb2x0aXA9e3Rvb2x0aXB9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfTWFya2VyX2JvcmRlclwiPlxuICAgICAgICAgICAgICAgICAgICB7cm9vbU1lbWJlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW1iZXJBdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1iZXI9e3Jvb21NZW1iZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIjM2cHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdVc2VyT25DbGljaz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gbXhpZCBvbiBob3ZlciB3aGVuIG1hcmtlciBoYXMgdG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVUaXRsZT17ISF0b29sdGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMb2NhdGlvbkljb24gY2xhc3NOYW1lPVwibXhfTWFya2VyX2ljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9PcHRpb25hbFRvb2x0aXA+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTWFya2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUFtRCxTQUFBTSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFdBQUFLLE9BQUEsRUFBQUwsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEs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