matrix-react-sdk
Version:
SDK for matrix.org using React
76 lines (73 loc) • 10.6 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 _languageHandler = require("../../../languageHandler");
var _KeyboardShortcuts = require("../../../accessibility/KeyboardShortcuts");
var _KeyBindingsManager = require("../../../KeyBindingsManager");
var _RovingTabIndex = require("../../../accessibility/RovingTabIndex");
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 Tulir Asokan <tulir@maunium.net>
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
class Search extends _react.default.PureComponent {
constructor(...args) {
super(...args);
(0, _defineProperty2.default)(this, "inputRef", /*#__PURE__*/_react.default.createRef());
(0, _defineProperty2.default)(this, "onKeyDown", ev => {
const action = (0, _KeyBindingsManager.getKeyBindingsManager)().getAccessibilityAction(ev);
switch (action) {
case _KeyboardShortcuts.KeyBindingAction.Enter:
this.props.onEnter();
ev.stopPropagation();
ev.preventDefault();
break;
default:
this.props.onKeyDown(ev);
}
});
}
componentDidMount() {
// For some reason, neither the autoFocus nor just calling focus() here worked, so here's a window.setTimeout
window.setTimeout(() => this.inputRef.current?.focus(), 0);
}
render() {
let rightButton;
if (this.props.query) {
rightButton = /*#__PURE__*/_react.default.createElement("button", {
onClick: () => this.props.onChange(""),
className: "mx_EmojiPicker_search_icon mx_EmojiPicker_search_clear",
title: (0, _languageHandler._t)("emoji_picker|cancel_search_label")
});
} else {
rightButton = /*#__PURE__*/_react.default.createElement("span", {
className: "mx_EmojiPicker_search_icon"
});
}
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_EmojiPicker_search"
}, /*#__PURE__*/_react.default.createElement("input", {
autoFocus: true,
type: "text",
placeholder: (0, _languageHandler._t)("action|search"),
value: this.props.query,
onChange: ev => this.props.onChange(ev.target.value),
onKeyDown: this.onKeyDown,
ref: this.inputRef,
"aria-activedescendant": this.context.state.activeRef?.current?.id,
"aria-controls": "mx_EmojiPicker_body",
"aria-haspopup": "grid",
"aria-autocomplete": "list"
}), rightButton);
}
}
(0, _defineProperty2.default)(Search, "contextType", _RovingTabIndex.RovingTabIndexContext);
var _default = exports.default = Search;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfS2V5Ym9hcmRTaG9ydGN1dHMiLCJfS2V5QmluZGluZ3NNYW5hZ2VyIiwiX1JvdmluZ1RhYkluZGV4IiwiU2VhcmNoIiwiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJjcmVhdGVSZWYiLCJldiIsImFjdGlvbiIsImdldEtleUJpbmRpbmdzTWFuYWdlciIsImdldEFjY2Vzc2liaWxpdHlBY3Rpb24iLCJLZXlCaW5kaW5nQWN0aW9uIiwiRW50ZXIiLCJwcm9wcyIsIm9uRW50ZXIiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsIm9uS2V5RG93biIsImNvbXBvbmVudERpZE1vdW50Iiwid2luZG93Iiwic2V0VGltZW91dCIsImlucHV0UmVmIiwiY3VycmVudCIsImZvY3VzIiwicmVuZGVyIiwicmlnaHRCdXR0b24iLCJxdWVyeSIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwib25DaGFuZ2UiLCJjbGFzc05hbWUiLCJ0aXRsZSIsIl90IiwiYXV0b0ZvY3VzIiwidHlwZSIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJ0YXJnZXQiLCJyZWYiLCJjb250ZXh0Iiwic3RhdGUiLCJhY3RpdmVSZWYiLCJpZCIsIlJvdmluZ1RhYkluZGV4Q29udGV4dCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2Vtb2ppcGlja2VyL1NlYXJjaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IFR1bGlyIEFzb2thbiA8dHVsaXJAbWF1bml1bS5uZXQ+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgeyBLZXlCaW5kaW5nQWN0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2FjY2Vzc2liaWxpdHkvS2V5Ym9hcmRTaG9ydGN1dHNcIjtcbmltcG9ydCB7IGdldEtleUJpbmRpbmdzTWFuYWdlciB9IGZyb20gXCIuLi8uLi8uLi9LZXlCaW5kaW5nc01hbmFnZXJcIjtcbmltcG9ydCB7IFJvdmluZ1RhYkluZGV4Q29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi9hY2Nlc3NpYmlsaXR5L1JvdmluZ1RhYkluZGV4XCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHF1ZXJ5OiBzdHJpbmc7XG4gICAgb25DaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgb25FbnRlcigpOiB2b2lkO1xuICAgIG9uS2V5RG93bihldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG59XG5cbmNsYXNzIFNlYXJjaCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzPiB7XG4gICAgcHVibGljIHN0YXRpYyBjb250ZXh0VHlwZSA9IFJvdmluZ1RhYkluZGV4Q29udGV4dDtcbiAgICBwdWJsaWMgZGVjbGFyZSBjb250ZXh0OiBSZWFjdC5Db250ZXh0VHlwZTx0eXBlb2YgUm92aW5nVGFiSW5kZXhDb250ZXh0PjtcblxuICAgIHByaXZhdGUgaW5wdXRSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBuZWl0aGVyIHRoZSBhdXRvRm9jdXMgbm9yIGp1c3QgY2FsbGluZyBmb2N1cygpIGhlcmUgd29ya2VkLCBzbyBoZXJlJ3MgYSB3aW5kb3cuc2V0VGltZW91dFxuICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCksIDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duID0gKGV2OiBSZWFjdC5LZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGdldEtleUJpbmRpbmdzTWFuYWdlcigpLmdldEFjY2Vzc2liaWxpdHlBY3Rpb24oZXYpO1xuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBLZXlCaW5kaW5nQWN0aW9uLkVudGVyOlxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25FbnRlcigpO1xuICAgICAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbktleURvd24oZXYpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICAgICAgbGV0IHJpZ2h0QnV0dG9uOiBKU1guRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucXVlcnkpIHtcbiAgICAgICAgICAgIHJpZ2h0QnV0dG9uID0gKFxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZShcIlwiKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfRW1vamlQaWNrZXJfc2VhcmNoX2ljb24gbXhfRW1vamlQaWNrZXJfc2VhcmNoX2NsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9e190KFwiZW1vamlfcGlja2VyfGNhbmNlbF9zZWFyY2hfbGFiZWxcIil9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByaWdodEJ1dHRvbiA9IDxzcGFuIGNsYXNzTmFtZT1cIm14X0Vtb2ppUGlja2VyX3NlYXJjaF9pY29uXCIgLz47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9FbW9qaVBpY2tlcl9zZWFyY2hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e190KFwiYWN0aW9ufHNlYXJjaFwiKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMucHJvcHMucXVlcnl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXYpID0+IHRoaXMucHJvcHMub25DaGFuZ2UoZXYudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLm9uS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmlucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e3RoaXMuY29udGV4dC5zdGF0ZS5hY3RpdmVSZWY/LmN1cnJlbnQ/LmlkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibXhfRW1vamlQaWNrZXJfYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJncmlkXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJsaXN0XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtyaWdodEJ1dHRvbn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVNBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxrQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsbUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUosT0FBQTtBQWRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBZ0JBLE1BQU1LLE1BQU0sU0FBU0MsY0FBSyxDQUFDQyxhQUFhLENBQVM7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUEsaUNBSTFCTCxjQUFLLENBQUNNLFNBQVMsQ0FBbUIsQ0FBQztJQUFBLElBQUFGLGdCQUFBLENBQUFDLE9BQUEscUJBT2pDRSxFQUF1QixJQUFXO01BQ25ELE1BQU1DLE1BQU0sR0FBRyxJQUFBQyx5Q0FBcUIsRUFBQyxDQUFDLENBQUNDLHNCQUFzQixDQUFDSCxFQUFFLENBQUM7TUFDakUsUUFBUUMsTUFBTTtRQUNWLEtBQUtHLG1DQUFnQixDQUFDQyxLQUFLO1VBQ3ZCLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUMsQ0FBQztVQUNwQlAsRUFBRSxDQUFDUSxlQUFlLENBQUMsQ0FBQztVQUNwQlIsRUFBRSxDQUFDUyxjQUFjLENBQUMsQ0FBQztVQUNuQjtRQUVKO1VBQ0ksSUFBSSxDQUFDSCxLQUFLLENBQUNJLFNBQVMsQ0FBQ1YsRUFBRSxDQUFDO01BQ2hDO0lBQ0osQ0FBQztFQUFBO0VBakJNVyxpQkFBaUJBLENBQUEsRUFBUztJQUM3QjtJQUNBQyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLEVBQUVDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQzlEO0VBZ0JPQyxNQUFNQSxDQUFBLEVBQW9CO0lBQzdCLElBQUlDLFdBQXdCO0lBQzVCLElBQUksSUFBSSxDQUFDWixLQUFLLENBQUNhLEtBQUssRUFBRTtNQUNsQkQsV0FBVyxnQkFDUGpDLE1BQUEsQ0FBQWEsT0FBQSxDQUFBc0IsYUFBQTtRQUNJQyxPQUFPLEVBQUVBLENBQUEsS0FBTSxJQUFJLENBQUNmLEtBQUssQ0FBQ2dCLFFBQVEsQ0FBQyxFQUFFLENBQUU7UUFDdkNDLFNBQVMsRUFBQyx3REFBd0Q7UUFDbEVDLEtBQUssRUFBRSxJQUFBQyxtQkFBRSxFQUFDLGtDQUFrQztNQUFFLENBQ2pELENBQ0o7SUFDTCxDQUFDLE1BQU07TUFDSFAsV0FBVyxnQkFBR2pDLE1BQUEsQ0FBQWEsT0FBQSxDQUFBc0IsYUFBQTtRQUFNRyxTQUFTLEVBQUM7TUFBNEIsQ0FBRSxDQUFDO0lBQ2pFO0lBRUEsb0JBQ0l0QyxNQUFBLENBQUFhLE9BQUEsQ0FBQXNCLGFBQUE7TUFBS0csU0FBUyxFQUFDO0lBQXVCLGdCQUNsQ3RDLE1BQUEsQ0FBQWEsT0FBQSxDQUFBc0IsYUFBQTtNQUNJTSxTQUFTO01BQ1RDLElBQUksRUFBQyxNQUFNO01BQ1hDLFdBQVcsRUFBRSxJQUFBSCxtQkFBRSxFQUFDLGVBQWUsQ0FBRTtNQUNqQ0ksS0FBSyxFQUFFLElBQUksQ0FBQ3ZCLEtBQUssQ0FBQ2EsS0FBTTtNQUN4QkcsUUFBUSxFQUFHdEIsRUFBRSxJQUFLLElBQUksQ0FBQ00sS0FBSyxDQUFDZ0IsUUFBUSxDQUFDdEIsRUFBRSxDQUFDOEIsTUFBTSxDQUFDRCxLQUFLLENBQUU7TUFDdkRuQixTQUFTLEVBQUUsSUFBSSxDQUFDQSxTQUFVO01BQzFCcUIsR0FBRyxFQUFFLElBQUksQ0FBQ2pCLFFBQVM7TUFDbkIseUJBQXVCLElBQUksQ0FBQ2tCLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDQyxTQUFTLEVBQUVuQixPQUFPLEVBQUVvQixFQUFHO01BQ2pFLGlCQUFjLHFCQUFxQjtNQUNuQyxpQkFBYyxNQUFNO01BQ3BCLHFCQUFrQjtJQUFNLENBQzNCLENBQUMsRUFDRGpCLFdBQ0EsQ0FBQztFQUVkO0FBQ0o7QUFBQyxJQUFBckIsZ0JBQUEsQ0FBQUMsT0FBQSxFQTFES04sTUFBTSxpQkFDb0I0QyxxQ0FBcUI7QUFBQSxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXhDLE9BQUEsR0EyRHRDTixNQUFNIiwiaWdub3JlTGlzdCI6W119