matrix-react-sdk
Version:
SDK for matrix.org using React
121 lines (115 loc) • 18.1 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 = _interopRequireWildcard(require("react"));
var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton"));
var _Field = _interopRequireDefault(require("../elements/Field"));
var _DialPad = _interopRequireDefault(require("./DialPad"));
var _DialPadBackspaceButton = _interopRequireDefault(require("../elements/DialPadBackspaceButton"));
var _LegacyCallHandler = _interopRequireDefault(require("../../../LegacyCallHandler"));
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 2020 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.
*/
class DialpadModal extends _react.default.PureComponent {
constructor(props) {
super(props);
(0, _defineProperty2.default)(this, "numberEntryFieldRef", /*#__PURE__*/(0, _react.createRef)());
(0, _defineProperty2.default)(this, "onCancelClick", () => {
this.props.onFinished(false);
});
(0, _defineProperty2.default)(this, "onChange", ev => {
this.setState({
value: ev.target.value
});
});
(0, _defineProperty2.default)(this, "onFormSubmit", ev => {
ev.preventDefault();
this.onDialPress();
});
(0, _defineProperty2.default)(this, "onDigitPress", (digit, ev) => {
this.setState({
value: this.state.value + digit
});
// Keep the number field focused so that keyboard entry is still available.
// However, don't focus if this wasn't the result of directly clicking on the button,
// i.e someone using keyboard navigation.
if (ev.type === "click") {
this.numberEntryFieldRef.current?.focus();
}
});
(0, _defineProperty2.default)(this, "onDeletePress", ev => {
if (this.state.value.length === 0) return;
this.setState({
value: this.state.value.slice(0, -1)
});
// Keep the number field focused so that keyboard entry is still available
// However, don't focus if this wasn't the result of directly clicking on the button,
// i.e someone using keyboard navigation.
if (ev.type === "click") {
this.numberEntryFieldRef.current?.focus();
}
});
(0, _defineProperty2.default)(this, "onDialPress", async () => {
_LegacyCallHandler.default.instance.dialNumber(this.state.value);
this.props.onFinished(true);
});
this.state = {
value: ""
};
}
render() {
const backspaceButton = /*#__PURE__*/_react.default.createElement(_DialPadBackspaceButton.default, {
onBackspacePress: this.onDeletePress
});
// Only show the backspace button if the field has content
let dialPadField;
if (this.state.value.length !== 0) {
dialPadField = /*#__PURE__*/_react.default.createElement(_Field.default, {
ref: this.numberEntryFieldRef,
className: "mx_DialPadModal_field",
id: "dialpad_number",
value: this.state.value,
autoFocus: true,
onChange: this.onChange,
postfixComponent: backspaceButton
});
} else {
dialPadField = /*#__PURE__*/_react.default.createElement(_Field.default, {
ref: this.numberEntryFieldRef,
className: "mx_DialPadModal_field",
id: "dialpad_number",
value: this.state.value,
autoFocus: true,
onChange: this.onChange
});
}
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_DialPadModal"
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
className: "mx_DialPadModal_cancel",
onClick: this.onCancelClick
})), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_DialPadModal_header"
}, /*#__PURE__*/_react.default.createElement("form", {
onSubmit: this.onFormSubmit
}, dialPadField)), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_DialPadModal_dialPad"
}, /*#__PURE__*/_react.default.createElement(_DialPad.default, {
hasDial: true,
onDigitPress: this.onDigitPress,
onDeletePress: this.onDeletePress,
onDialPress: this.onDialPress
})));
}
}
exports.default = DialpadModal;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfQWNjZXNzaWJsZUJ1dHRvbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRmllbGQiLCJfRGlhbFBhZCIsIl9EaWFsUGFkQmFja3NwYWNlQnV0dG9uIiwiX0xlZ2FjeUNhbGxIYW5kbGVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiRGlhbHBhZE1vZGFsIiwiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJjcmVhdGVSZWYiLCJvbkZpbmlzaGVkIiwiZXYiLCJzZXRTdGF0ZSIsInZhbHVlIiwidGFyZ2V0IiwicHJldmVudERlZmF1bHQiLCJvbkRpYWxQcmVzcyIsImRpZ2l0Iiwic3RhdGUiLCJ0eXBlIiwibnVtYmVyRW50cnlGaWVsZFJlZiIsImN1cnJlbnQiLCJmb2N1cyIsImxlbmd0aCIsInNsaWNlIiwiTGVnYWN5Q2FsbEhhbmRsZXIiLCJpbnN0YW5jZSIsImRpYWxOdW1iZXIiLCJyZW5kZXIiLCJiYWNrc3BhY2VCdXR0b24iLCJjcmVhdGVFbGVtZW50Iiwib25CYWNrc3BhY2VQcmVzcyIsIm9uRGVsZXRlUHJlc3MiLCJkaWFsUGFkRmllbGQiLCJyZWYiLCJjbGFzc05hbWUiLCJpZCIsImF1dG9Gb2N1cyIsIm9uQ2hhbmdlIiwicG9zdGZpeENvbXBvbmVudCIsIm9uQ2xpY2siLCJvbkNhbmNlbENsaWNrIiwib25TdWJtaXQiLCJvbkZvcm1TdWJtaXQiLCJoYXNEaWFsIiwib25EaWdpdFByZXNzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3ZvaXAvRGlhbFBhZE1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ2hhbmdlRXZlbnQsIGNyZWF0ZVJlZiwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24sIHsgQnV0dG9uRXZlbnQgfSBmcm9tIFwiLi4vZWxlbWVudHMvQWNjZXNzaWJsZUJ1dHRvblwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCIuLi9lbGVtZW50cy9GaWVsZFwiO1xuaW1wb3J0IERpYWxQYWQgZnJvbSBcIi4vRGlhbFBhZFwiO1xuaW1wb3J0IERpYWxQYWRCYWNrc3BhY2VCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0RpYWxQYWRCYWNrc3BhY2VCdXR0b25cIjtcbmltcG9ydCBMZWdhY3lDYWxsSGFuZGxlciBmcm9tIFwiLi4vLi4vLi4vTGVnYWN5Q2FsbEhhbmRsZXJcIjtcblxuaW50ZXJmYWNlIElQcm9wcyB7XG4gICAgb25GaW5pc2hlZDogKGRpYWxsZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmludGVyZmFjZSBJU3RhdGUge1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpYWxwYWRNb2RhbCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBJU3RhdGU+IHtcbiAgICBwcml2YXRlIG51bWJlckVudHJ5RmllbGRSZWY6IFJlYWN0LlJlZk9iamVjdDxGaWVsZD4gPSBjcmVhdGVSZWYoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogSVByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNhbmNlbENsaWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnByb3BzLm9uRmluaXNoZWQoZmFsc2UpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgb25DaGFuZ2UgPSAoZXY6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogZXYudGFyZ2V0LnZhbHVlIH0pO1xuICAgIH07XG5cbiAgICBwdWJsaWMgb25Gb3JtU3VibWl0ID0gKGV2OiBTeW50aGV0aWNFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLm9uRGlhbFByZXNzKCk7XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbkRpZ2l0UHJlc3MgPSAoZGlnaXQ6IHN0cmluZywgZXY6IEJ1dHRvbkV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogdGhpcy5zdGF0ZS52YWx1ZSArIGRpZ2l0IH0pO1xuXG4gICAgICAgIC8vIEtlZXAgdGhlIG51bWJlciBmaWVsZCBmb2N1c2VkIHNvIHRoYXQga2V5Ym9hcmQgZW50cnkgaXMgc3RpbGwgYXZhaWxhYmxlLlxuICAgICAgICAvLyBIb3dldmVyLCBkb24ndCBmb2N1cyBpZiB0aGlzIHdhc24ndCB0aGUgcmVzdWx0IG9mIGRpcmVjdGx5IGNsaWNraW5nIG9uIHRoZSBidXR0b24sXG4gICAgICAgIC8vIGkuZSBzb21lb25lIHVzaW5nIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICAgIGlmIChldi50eXBlID09PSBcImNsaWNrXCIpIHtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRW50cnlGaWVsZFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbkRlbGV0ZVByZXNzID0gKGV2OiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS52YWx1ZS5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB0aGlzLnN0YXRlLnZhbHVlLnNsaWNlKDAsIC0xKSB9KTtcblxuICAgICAgICAvLyBLZWVwIHRoZSBudW1iZXIgZmllbGQgZm9jdXNlZCBzbyB0aGF0IGtleWJvYXJkIGVudHJ5IGlzIHN0aWxsIGF2YWlsYWJsZVxuICAgICAgICAvLyBIb3dldmVyLCBkb24ndCBmb2N1cyBpZiB0aGlzIHdhc24ndCB0aGUgcmVzdWx0IG9mIGRpcmVjdGx5IGNsaWNraW5nIG9uIHRoZSBidXR0b24sXG4gICAgICAgIC8vIGkuZSBzb21lb25lIHVzaW5nIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICAgIGlmIChldi50eXBlID09PSBcImNsaWNrXCIpIHtcbiAgICAgICAgICAgIHRoaXMubnVtYmVyRW50cnlGaWVsZFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbkRpYWxQcmVzcyA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgTGVnYWN5Q2FsbEhhbmRsZXIuaW5zdGFuY2UuZGlhbE51bWJlcih0aGlzLnN0YXRlLnZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkZpbmlzaGVkKHRydWUpO1xuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIGNvbnN0IGJhY2tzcGFjZUJ1dHRvbiA9IDxEaWFsUGFkQmFja3NwYWNlQnV0dG9uIG9uQmFja3NwYWNlUHJlc3M9e3RoaXMub25EZWxldGVQcmVzc30gLz47XG5cbiAgICAgICAgLy8gT25seSBzaG93IHRoZSBiYWNrc3BhY2UgYnV0dG9uIGlmIHRoZSBmaWVsZCBoYXMgY29udGVudFxuICAgICAgICBsZXQgZGlhbFBhZEZpZWxkO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS52YWx1ZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIGRpYWxQYWRGaWVsZCA9IChcbiAgICAgICAgICAgICAgICA8RmllbGRcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLm51bWJlckVudHJ5RmllbGRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14X0RpYWxQYWRNb2RhbF9maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZGlhbHBhZF9udW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgcG9zdGZpeENvbXBvbmVudD17YmFja3NwYWNlQnV0dG9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlhbFBhZEZpZWxkID0gKFxuICAgICAgICAgICAgICAgIDxGaWVsZFxuICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMubnVtYmVyRW50cnlGaWVsZFJlZn1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfRGlhbFBhZE1vZGFsX2ZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJkaWFscGFkX251bWJlclwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfRGlhbFBhZE1vZGFsXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPEFjY2Vzc2libGVCdXR0b24gY2xhc3NOYW1lPVwibXhfRGlhbFBhZE1vZGFsX2NhbmNlbFwiIG9uQ2xpY2s9e3RoaXMub25DYW5jZWxDbGlja30gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0RpYWxQYWRNb2RhbF9oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e3RoaXMub25Gb3JtU3VibWl0fT57ZGlhbFBhZEZpZWxkfTwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0RpYWxQYWRNb2RhbF9kaWFsUGFkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxEaWFsUGFkXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNEaWFsPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25EaWdpdFByZXNzPXt0aGlzLm9uRGlnaXRQcmVzc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlUHJlc3M9e3RoaXMub25EZWxldGVQcmVzc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRGlhbFByZXNzPXt0aGlzLm9uRGlhbFByZXNzfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7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