matrix-react-sdk
Version:
SDK for matrix.org using React
84 lines (80 loc) • 16.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _MatrixClientContext = _interopRequireDefault(require("../../../contexts/MatrixClientContext"));
var _ContextMenu = _interopRequireDefault(require("../../structures/ContextMenu"));
var _LocationPicker = _interopRequireDefault(require("./LocationPicker"));
var _shareLocation = require("./shareLocation");
var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore"));
var _ShareDialogButtons = _interopRequireDefault(require("./ShareDialogButtons"));
var _ShareType = _interopRequireDefault(require("./ShareType"));
var _OwnProfileStore = require("../../../stores/OwnProfileStore");
var _EnableLiveShare = require("./EnableLiveShare");
var _useSettings = require("../../../hooks/useSettings");
var _SettingLevel = require("../../../settings/SettingLevel");
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.
*/
const getEnabledShareTypes = relation => {
const enabledShareTypes = [_shareLocation.LocationShareType.Own];
// live locations cannot have a relation
// hide the option when composer has a relation
if (!relation) {
enabledShareTypes.push(_shareLocation.LocationShareType.Live);
}
enabledShareTypes.push(_shareLocation.LocationShareType.Pin);
return enabledShareTypes;
};
const LocationShareMenu = ({
menuPosition,
onFinished,
sender,
roomId,
openMenu,
relation
}) => {
const matrixClient = (0, _react.useContext)(_MatrixClientContext.default);
const enabledShareTypes = getEnabledShareTypes(relation);
const isLiveShareEnabled = (0, _useSettings.useFeatureEnabled)("feature_location_share_live");
const multipleShareTypesEnabled = enabledShareTypes.length > 1;
const [shareType, setShareType] = (0, _react.useState)(multipleShareTypesEnabled ? undefined : _shareLocation.LocationShareType.Own);
const displayName = _OwnProfileStore.OwnProfileStore.instance.displayName;
const userId = matrixClient.getSafeUserId();
const onLocationSubmit = shareType === _shareLocation.LocationShareType.Live ? (0, _shareLocation.shareLiveLocation)(matrixClient, roomId, displayName || userId, openMenu) : (0, _shareLocation.shareLocation)(matrixClient, roomId, shareType ?? _shareLocation.LocationShareType.Own, relation, openMenu);
const onLiveShareEnableSubmit = () => {
_SettingsStore.default.setValue("feature_location_share_live", null, _SettingLevel.SettingLevel.DEVICE, true);
};
const shouldAdvertiseLiveLabsFlag = shareType === _shareLocation.LocationShareType.Live && !isLiveShareEnabled;
return /*#__PURE__*/_react.default.createElement(_ContextMenu.default, (0, _extends2.default)({}, menuPosition, {
onFinished: onFinished,
managed: false
}), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_LocationShareMenu"
}, shouldAdvertiseLiveLabsFlag && /*#__PURE__*/_react.default.createElement(_EnableLiveShare.EnableLiveShare, {
onSubmit: onLiveShareEnableSubmit
}), !shouldAdvertiseLiveLabsFlag && !!shareType && /*#__PURE__*/_react.default.createElement(_LocationPicker.default, {
sender: sender,
shareType: shareType,
onChoose: onLocationSubmit,
onFinished: onFinished
}), !shareType && /*#__PURE__*/_react.default.createElement(_ShareType.default, {
setShareType: setShareType,
enabledShareTypes: enabledShareTypes
}), /*#__PURE__*/_react.default.createElement(_ShareDialogButtons.default, {
displayBack: !!shareType && multipleShareTypesEnabled,
onBack: () => setShareType(undefined),
onCancel: onFinished
})));
};
var _default = exports.default = LocationShareMenu;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfTWF0cml4Q2xpZW50Q29udGV4dCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQ29udGV4dE1lbnUiLCJfTG9jYXRpb25QaWNrZXIiLCJfc2hhcmVMb2NhdGlvbiIsIl9TZXR0aW5nc1N0b3JlIiwiX1NoYXJlRGlhbG9nQnV0dG9ucyIsIl9TaGFyZVR5cGUiLCJfT3duUHJvZmlsZVN0b3JlIiwiX0VuYWJsZUxpdmVTaGFyZSIsIl91c2VTZXR0aW5ncyIsIl9TZXR0aW5nTGV2ZWwiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJnZXRFbmFibGVkU2hhcmVUeXBlcyIsInJlbGF0aW9uIiwiZW5hYmxlZFNoYXJlVHlwZXMiLCJMb2NhdGlvblNoYXJlVHlwZSIsIk93biIsInB1c2giLCJMaXZlIiwiUGluIiwiTG9jYXRpb25TaGFyZU1lbnUiLCJtZW51UG9zaXRpb24iLCJvbkZpbmlzaGVkIiwic2VuZGVyIiwicm9vbUlkIiwib3Blbk1lbnUiLCJtYXRyaXhDbGllbnQiLCJ1c2VDb250ZXh0IiwiTWF0cml4Q2xpZW50Q29udGV4dCIsImlzTGl2ZVNoYXJlRW5hYmxlZCIsInVzZUZlYXR1cmVFbmFibGVkIiwibXVsdGlwbGVTaGFyZVR5cGVzRW5hYmxlZCIsImxlbmd0aCIsInNoYXJlVHlwZSIsInNldFNoYXJlVHlwZSIsInVzZVN0YXRlIiwidW5kZWZpbmVkIiwiZGlzcGxheU5hbWUiLCJPd25Qcm9maWxlU3RvcmUiLCJpbnN0YW5jZSIsInVzZXJJZCIsImdldFNhZmVVc2VySWQiLCJvbkxvY2F0aW9uU3VibWl0Iiwic2hhcmVMaXZlTG9jYXRpb24iLCJzaGFyZUxvY2F0aW9uIiwib25MaXZlU2hhcmVFbmFibGVTdWJtaXQiLCJTZXR0aW5nc1N0b3JlIiwic2V0VmFsdWUiLCJTZXR0aW5nTGV2ZWwiLCJERVZJQ0UiLCJzaG91bGRBZHZlcnRpc2VMaXZlTGFic0ZsYWciLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwibWFuYWdlZCIsImNsYXNzTmFtZSIsIkVuYWJsZUxpdmVTaGFyZSIsIm9uU3VibWl0Iiwib25DaG9vc2UiLCJkaXNwbGF5QmFjayIsIm9uQmFjayIsIm9uQ2FuY2VsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vTG9jYXRpb25TaGFyZU1lbnUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBTeW50aGV0aWNFdmVudCwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFJvb20sIElFdmVudFJlbGF0aW9uIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgTWF0cml4Q2xpZW50Q29udGV4dCBmcm9tIFwiLi4vLi4vLi4vY29udGV4dHMvTWF0cml4Q2xpZW50Q29udGV4dFwiO1xuaW1wb3J0IENvbnRleHRNZW51LCB7IE1lbnVQcm9wcyB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmVzL0NvbnRleHRNZW51XCI7XG5pbXBvcnQgTG9jYXRpb25QaWNrZXIsIHsgSUxvY2F0aW9uUGlja2VyUHJvcHMgfSBmcm9tIFwiLi9Mb2NhdGlvblBpY2tlclwiO1xuaW1wb3J0IHsgc2hhcmVMaXZlTG9jYXRpb24sIHNoYXJlTG9jYXRpb24sIExvY2F0aW9uU2hhcmVUeXBlIH0gZnJvbSBcIi4vc2hhcmVMb2NhdGlvblwiO1xuaW1wb3J0IFNldHRpbmdzU3RvcmUgZnJvbSBcIi4uLy4uLy4uL3NldHRpbmdzL1NldHRpbmdzU3RvcmVcIjtcbmltcG9ydCBTaGFyZURpYWxvZ0J1dHRvbnMgZnJvbSBcIi4vU2hhcmVEaWFsb2dCdXR0b25zXCI7XG5pbXBvcnQgU2hhcmVUeXBlIGZyb20gXCIuL1NoYXJlVHlwZVwiO1xuaW1wb3J0IHsgT3duUHJvZmlsZVN0b3JlIH0gZnJvbSBcIi4uLy4uLy4uL3N0b3Jlcy9Pd25Qcm9maWxlU3RvcmVcIjtcbmltcG9ydCB7IEVuYWJsZUxpdmVTaGFyZSB9IGZyb20gXCIuL0VuYWJsZUxpdmVTaGFyZVwiO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUVuYWJsZWQgfSBmcm9tIFwiLi4vLi4vLi4vaG9va3MvdXNlU2V0dGluZ3NcIjtcbmltcG9ydCB7IFNldHRpbmdMZXZlbCB9IGZyb20gXCIuLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nTGV2ZWxcIjtcblxudHlwZSBQcm9wcyA9IE9taXQ8SUxvY2F0aW9uUGlja2VyUHJvcHMsIFwib25DaG9vc2VcIiB8IFwic2hhcmVUeXBlXCI+ICYge1xuICAgIG9uRmluaXNoZWQ6IChldj86IFN5bnRoZXRpY0V2ZW50KSA9PiB2b2lkO1xuICAgIG1lbnVQb3NpdGlvbjogTWVudVByb3BzO1xuICAgIG9wZW5NZW51OiAoKSA9PiB2b2lkO1xuICAgIHJvb21JZDogUm9vbVtcInJvb21JZFwiXTtcbiAgICByZWxhdGlvbj86IElFdmVudFJlbGF0aW9uO1xufTtcblxuY29uc3QgZ2V0RW5hYmxlZFNoYXJlVHlwZXMgPSAocmVsYXRpb24/OiBJRXZlbnRSZWxhdGlvbik6IExvY2F0aW9uU2hhcmVUeXBlW10gPT4ge1xuICAgIGNvbnN0IGVuYWJsZWRTaGFyZVR5cGVzID0gW0xvY2F0aW9uU2hhcmVUeXBlLk93bl07XG5cbiAgICAvLyBsaXZlIGxvY2F0aW9ucyBjYW5ub3QgaGF2ZSBhIHJlbGF0aW9uXG4gICAgLy8gaGlkZSB0aGUgb3B0aW9uIHdoZW4gY29tcG9zZXIgaGFzIGEgcmVsYXRpb25cbiAgICBpZiAoIXJlbGF0aW9uKSB7XG4gICAgICAgIGVuYWJsZWRTaGFyZVR5cGVzLnB1c2goTG9jYXRpb25TaGFyZVR5cGUuTGl2ZSk7XG4gICAgfVxuXG4gICAgZW5hYmxlZFNoYXJlVHlwZXMucHVzaChMb2NhdGlvblNoYXJlVHlwZS5QaW4pO1xuXG4gICAgcmV0dXJuIGVuYWJsZWRTaGFyZVR5cGVzO1xufTtcblxuY29uc3QgTG9jYXRpb25TaGFyZU1lbnU6IFJlYWN0LkZDPFByb3BzPiA9ICh7IG1lbnVQb3NpdGlvbiwgb25GaW5pc2hlZCwgc2VuZGVyLCByb29tSWQsIG9wZW5NZW51LCByZWxhdGlvbiB9KSA9PiB7XG4gICAgY29uc3QgbWF0cml4Q2xpZW50ID0gdXNlQ29udGV4dChNYXRyaXhDbGllbnRDb250ZXh0KTtcbiAgICBjb25zdCBlbmFibGVkU2hhcmVUeXBlcyA9IGdldEVuYWJsZWRTaGFyZVR5cGVzKHJlbGF0aW9uKTtcbiAgICBjb25zdCBpc0xpdmVTaGFyZUVuYWJsZWQgPSB1c2VGZWF0dXJlRW5hYmxlZChcImZlYXR1cmVfbG9jYXRpb25fc2hhcmVfbGl2ZVwiKTtcblxuICAgIGNvbnN0IG11bHRpcGxlU2hhcmVUeXBlc0VuYWJsZWQgPSBlbmFibGVkU2hhcmVUeXBlcy5sZW5ndGggPiAxO1xuXG4gICAgY29uc3QgW3NoYXJlVHlwZSwgc2V0U2hhcmVUeXBlXSA9IHVzZVN0YXRlPExvY2F0aW9uU2hhcmVUeXBlIHwgdW5kZWZpbmVkPihcbiAgICAgICAgbXVsdGlwbGVTaGFyZVR5cGVzRW5hYmxlZCA/IHVuZGVmaW5lZCA6IExvY2F0aW9uU2hhcmVUeXBlLk93bixcbiAgICApO1xuXG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSBPd25Qcm9maWxlU3RvcmUuaW5zdGFuY2UuZGlzcGxheU5hbWU7XG4gICAgY29uc3QgdXNlcklkID0gbWF0cml4Q2xpZW50LmdldFNhZmVVc2VySWQoKTtcblxuICAgIGNvbnN0IG9uTG9jYXRpb25TdWJtaXQgPVxuICAgICAgICBzaGFyZVR5cGUgPT09IExvY2F0aW9uU2hhcmVUeXBlLkxpdmVcbiAgICAgICAgICAgID8gc2hhcmVMaXZlTG9jYXRpb24obWF0cml4Q2xpZW50LCByb29tSWQsIGRpc3BsYXlOYW1lIHx8IHVzZXJJZCwgb3Blbk1lbnUpXG4gICAgICAgICAgICA6IHNoYXJlTG9jYXRpb24obWF0cml4Q2xpZW50LCByb29tSWQsIHNoYXJlVHlwZSA/PyBMb2NhdGlvblNoYXJlVHlwZS5Pd24sIHJlbGF0aW9uLCBvcGVuTWVudSk7XG5cbiAgICBjb25zdCBvbkxpdmVTaGFyZUVuYWJsZVN1Ym1pdCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgU2V0dGluZ3NTdG9yZS5zZXRWYWx1ZShcImZlYXR1cmVfbG9jYXRpb25fc2hhcmVfbGl2ZVwiLCBudWxsLCBTZXR0aW5nTGV2ZWwuREVWSUNFLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hvdWxkQWR2ZXJ0aXNlTGl2ZUxhYnNGbGFnID0gc2hhcmVUeXBlID09PSBMb2NhdGlvblNoYXJlVHlwZS5MaXZlICYmICFpc0xpdmVTaGFyZUVuYWJsZWQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Q29udGV4dE1lbnUgey4uLm1lbnVQb3NpdGlvbn0gb25GaW5pc2hlZD17b25GaW5pc2hlZH0gbWFuYWdlZD17ZmFsc2V9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9Mb2NhdGlvblNoYXJlTWVudVwiPlxuICAgICAgICAgICAgICAgIHtzaG91bGRBZHZlcnRpc2VMaXZlTGFic0ZsYWcgJiYgPEVuYWJsZUxpdmVTaGFyZSBvblN1Ym1pdD17b25MaXZlU2hhcmVFbmFibGVTdWJtaXR9IC8+fVxuICAgICAgICAgICAgICAgIHshc2hvdWxkQWR2ZXJ0aXNlTGl2ZUxhYnNGbGFnICYmICEhc2hhcmVUeXBlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPExvY2F0aW9uUGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI9e3NlbmRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlVHlwZT17c2hhcmVUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaG9vc2U9e29uTG9jYXRpb25TdWJtaXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZpbmlzaGVkPXtvbkZpbmlzaGVkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgeyFzaGFyZVR5cGUgJiYgPFNoYXJlVHlwZSBzZXRTaGFyZVR5cGU9e3NldFNoYXJlVHlwZX0gZW5hYmxlZFNoYXJlVHlwZXM9e2VuYWJsZWRTaGFyZVR5cGVzfSAvPn1cbiAgICAgICAgICAgICAgICA8U2hhcmVEaWFsb2dCdXR0b25zXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlCYWNrPXshIXNoYXJlVHlwZSAmJiBtdWx0aXBsZVNoYXJlVHlwZXNFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICBvbkJhY2s9eygpID0+IHNldFNoYXJlVHlwZSh1bmRlZmluZWQpfVxuICAgICAgICAgICAgICAgICAgICBvbkNhbmNlbD17b25GaW5pc2hlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ29udGV4dE1lbnU+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExvY2F0aW9uU2hhcmVNZW51O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLG9CQUFBLEdB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