UNPKG

matrix-react-sdk

Version:
35 lines (32 loc) 4.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useIsFocused = useIsFocused; var _react = require("react"); /* 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. */ function useIsFocused() { const [isFocused, setIsFocused] = (0, _react.useState)(false); const timeoutIDRef = (0, _react.useRef)(); (0, _react.useEffect)(() => () => clearTimeout(timeoutIDRef.current), [timeoutIDRef]); const onFocus = (0, _react.useCallback)(event => { clearTimeout(timeoutIDRef.current); if (event.type === "focus") { setIsFocused(true); } else { // To avoid a blink when we switch mode between plain text and rich text mode // We delay the unfocused action timeoutIDRef.current = window.setTimeout(() => setIsFocused(false), 100); } }, [setIsFocused, timeoutIDRef]); return { isFocused, onFocus }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlSXNGb2N1c2VkIiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwidXNlU3RhdGUiLCJ0aW1lb3V0SURSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50Iiwib25Gb2N1cyIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJ0eXBlIiwid2luZG93Iiwic2V0VGltZW91dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvaG9va3MvdXNlSXNGb2N1c2VkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IEZvY3VzRXZlbnQsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUlzRm9jdXNlZCgpOiB7XG4gICAgaXNGb2N1c2VkOiBib29sZWFuO1xuICAgIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQ8SFRNTEVsZW1lbnQ+KTogdm9pZDtcbn0ge1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGltZW91dElEUmVmID0gdXNlUmVmPG51bWJlcj4oKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dElEUmVmLmN1cnJlbnQpLCBbdGltZW91dElEUmVmXSk7XG4gICAgY29uc3Qgb25Gb2N1cyA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoZXZlbnQ6IEZvY3VzRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElEUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZm9jdXNcIikge1xuICAgICAgICAgICAgICAgIHNldElzRm9jdXNlZCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVG8gYXZvaWQgYSBibGluayB3aGVuIHdlIHN3aXRjaCBtb2RlIGJldHdlZW4gcGxhaW4gdGV4dCBhbmQgcmljaCB0ZXh0IG1vZGVcbiAgICAgICAgICAgICAgICAvLyBXZSBkZWxheSB0aGUgdW5mb2N1c2VkIGFjdGlvblxuICAgICAgICAgICAgICAgIHRpbWVvdXRJRFJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKSwgMTAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3NldElzRm9jdXNlZCwgdGltZW91dElEUmVmXSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgaXNGb2N1c2VkLCBvbkZvY3VzIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlPLFNBQVNDLFlBQVlBLENBQUEsRUFHMUI7RUFDRSxNQUFNLENBQUNDLFNBQVMsRUFBRUMsWUFBWSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFDLEtBQUssQ0FBQztFQUNqRCxNQUFNQyxZQUFZLEdBQUcsSUFBQUMsYUFBTSxFQUFTLENBQUM7RUFFckMsSUFBQUMsZ0JBQVMsRUFBQyxNQUFNLE1BQU1DLFlBQVksQ0FBQ0gsWUFBWSxDQUFDSSxPQUFPLENBQUMsRUFBRSxDQUFDSixZQUFZLENBQUMsQ0FBQztFQUN6RSxNQUFNSyxPQUFPLEdBQUcsSUFBQUMsa0JBQVcsRUFDdEJDLEtBQThCLElBQUs7SUFDaENKLFlBQVksQ0FBQ0gsWUFBWSxDQUFDSSxPQUFPLENBQUM7SUFDbEMsSUFBSUcsS0FBSyxDQUFDQyxJQUFJLEtBQUssT0FBTyxFQUFFO01BQ3hCVixZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RCLENBQUMsTUFBTTtNQUNIO01BQ0E7TUFDQUUsWUFBWSxDQUFDSSxPQUFPLEdBQUdLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLE1BQU1aLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDNUU7RUFDSixDQUFDLEVBQ0QsQ0FBQ0EsWUFBWSxFQUFFRSxZQUFZLENBQy9CLENBQUM7RUFFRCxPQUFPO0lBQUVILFNBQVM7SUFBRVE7RUFBUSxDQUFDO0FBQ2pDIiwiaWdub3JlTGlzdCI6W119