matrix-react-sdk
Version:
SDK for matrix.org using React
47 lines (45 loc) • 5.79 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RovingAccessibleButton = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _AccessibleButton = _interopRequireDefault(require("../../components/views/elements/AccessibleButton"));
var _RovingTabIndex = require("../RovingTabIndex");
const _excluded = ["inputRef", "onFocus", "onMouseOver", "focusOnMouseOver", "element"];
/*
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.
*/
// Wrapper to allow use of useRovingTabIndex for simple AccessibleButtons outside of React Functional Components.
const RovingAccessibleButton = _ref => {
let {
inputRef,
onFocus,
onMouseOver,
focusOnMouseOver,
element
} = _ref,
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
const [onFocusInternal, isActive, ref] = (0, _RovingTabIndex.useRovingTabIndex)(inputRef);
return /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, (0, _extends2.default)({}, props, {
element: element,
onFocus: event => {
onFocusInternal();
onFocus?.(event);
},
onMouseOver: event => {
if (focusOnMouseOver) onFocusInternal();
onMouseOver?.(event);
},
ref: ref,
tabIndex: isActive ? 0 : -1
}));
};
exports.RovingAccessibleButton = RovingAccessibleButton;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX1JvdmluZ1RhYkluZGV4IiwiX2V4Y2x1ZGVkIiwiUm92aW5nQWNjZXNzaWJsZUJ1dHRvbiIsIl9yZWYiLCJpbnB1dFJlZiIsIm9uRm9jdXMiLCJvbk1vdXNlT3ZlciIsImZvY3VzT25Nb3VzZU92ZXIiLCJlbGVtZW50IiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGVmYXVsdCIsIm9uRm9jdXNJbnRlcm5hbCIsImlzQWN0aXZlIiwicmVmIiwidXNlUm92aW5nVGFiSW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiZXZlbnQiLCJ0YWJJbmRleCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWNjZXNzaWJpbGl0eS9yb3ZpbmcvUm92aW5nQWNjZXNzaWJsZUJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFByb3BzIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCB7IHVzZVJvdmluZ1RhYkluZGV4IH0gZnJvbSBcIi4uL1JvdmluZ1RhYkluZGV4XCI7XG5pbXBvcnQgeyBSZWYgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG50eXBlIFByb3BzPFQgZXh0ZW5kcyBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHM+ID0gT21pdDxcbiAgICBDb21wb25lbnRQcm9wczx0eXBlb2YgQWNjZXNzaWJsZUJ1dHRvbjxUPj4sXG4gICAgXCJpbnB1dFJlZlwiIHwgXCJ0YWJJbmRleFwiXG4+ICYge1xuICAgIGlucHV0UmVmPzogUmVmO1xuICAgIGZvY3VzT25Nb3VzZU92ZXI/OiBib29sZWFuO1xufTtcblxuLy8gV3JhcHBlciB0byBhbGxvdyB1c2Ugb2YgdXNlUm92aW5nVGFiSW5kZXggZm9yIHNpbXBsZSBBY2Nlc3NpYmxlQnV0dG9ucyBvdXRzaWRlIG9mIFJlYWN0IEZ1bmN0aW9uYWwgQ29tcG9uZW50cy5cbmV4cG9ydCBjb25zdCBSb3ZpbmdBY2Nlc3NpYmxlQnV0dG9uID0gPFQgZXh0ZW5kcyBrZXlvZiBKU1guSW50cmluc2ljRWxlbWVudHM+KHtcbiAgICBpbnB1dFJlZixcbiAgICBvbkZvY3VzLFxuICAgIG9uTW91c2VPdmVyLFxuICAgIGZvY3VzT25Nb3VzZU92ZXIsXG4gICAgZWxlbWVudCxcbiAgICAuLi5wcm9wc1xufTogUHJvcHM8VD4pOiBKU1guRWxlbWVudCA9PiB7XG4gICAgY29uc3QgW29uRm9jdXNJbnRlcm5hbCwgaXNBY3RpdmUsIHJlZl0gPSB1c2VSb3ZpbmdUYWJJbmRleChpbnB1dFJlZik7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgIGVsZW1lbnQ9e2VsZW1lbnQgYXMga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgb25Gb2N1c0ludGVybmFsKCk7XG4gICAgICAgICAgICAgICAgb25Gb2N1cz8uKGV2ZW50KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlT3Zlcj17KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZvY3VzT25Nb3VzZU92ZXIpIG9uRm9jdXNJbnRlcm5hbCgpO1xuICAgICAgICAgICAgICAgIG9uTW91c2VPdmVyPy4oZXZlbnQpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgdGFiSW5kZXg9e2lzQWN0aXZlID8gMCA6IC0xfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQXNELE1BQUFHLFNBQUE7QUFYdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFnQkE7QUFDTyxNQUFNQyxzQkFBc0IsR0FBR0MsSUFBQSxJQU9UO0VBQUEsSUFQaUQ7TUFDMUVDLFFBQVE7TUFDUkMsT0FBTztNQUNQQyxXQUFXO01BQ1hDLGdCQUFnQjtNQUNoQkM7SUFFTSxDQUFDLEdBQUFMLElBQUE7SUFESk0sS0FBSyxPQUFBQyx5QkFBQSxDQUFBQyxPQUFBLEVBQUFSLElBQUEsRUFBQUYsU0FBQTtFQUVSLE1BQU0sQ0FBQ1csZUFBZSxFQUFFQyxRQUFRLEVBQUVDLEdBQUcsQ0FBQyxHQUFHLElBQUFDLGlDQUFpQixFQUFDWCxRQUFRLENBQUM7RUFDcEUsb0JBQ0lSLE1BQUEsQ0FBQWUsT0FBQSxDQUFBSyxhQUFBLENBQUNqQixpQkFBQSxDQUFBWSxPQUFnQixNQUFBTSxTQUFBLENBQUFOLE9BQUEsTUFDVEYsS0FBSztJQUNURCxPQUFPLEVBQUVBLE9BQXVDO0lBQ2hESCxPQUFPLEVBQUdhLEtBQXVCLElBQUs7TUFDbENOLGVBQWUsQ0FBQyxDQUFDO01BQ2pCUCxPQUFPLEdBQUdhLEtBQUssQ0FBQztJQUNwQixDQUFFO0lBQ0ZaLFdBQVcsRUFBR1ksS0FBdUIsSUFBSztNQUN0QyxJQUFJWCxnQkFBZ0IsRUFBRUssZUFBZSxDQUFDLENBQUM7TUFDdkNOLFdBQVcsR0FBR1ksS0FBSyxDQUFDO0lBQ3hCLENBQUU7SUFDRkosR0FBRyxFQUFFQSxHQUFJO0lBQ1RLLFFBQVEsRUFBRU4sUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDO0VBQUUsRUFDL0IsQ0FBQztBQUVWLENBQUM7QUFBQ08sT0FBQSxDQUFBbEIsc0JBQUEsR0FBQUEsc0JBQUEiLCJpZ25vcmVMaXN0IjpbXX0=