UNPKG

matrix-react-sdk

Version:
40 lines (37 loc) 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTimeoutToggle = void 0; 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. */ /** * Hook that allows toggling a boolean value and resets it after a timeout. * * @param {boolean} defaultValue Default value * @param {number} timeoutMs Time after that the value will be reset */ const useTimeoutToggle = (defaultValue, timeoutMs) => { const timeoutId = (0, _react.useRef)(); const [value, setValue] = (0, _react.useState)(defaultValue); const toggle = () => { setValue(!defaultValue); timeoutId.current = window.setTimeout(() => setValue(defaultValue), timeoutMs); }; (0, _react.useEffect)(() => { return () => { clearTimeout(timeoutId.current); }; }); return { toggle, value }; }; exports.useTimeoutToggle = useTimeoutToggle; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwidXNlVGltZW91dFRvZ2dsZSIsImRlZmF1bHRWYWx1ZSIsInRpbWVvdXRNcyIsInRpbWVvdXRJZCIsInVzZVJlZiIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsInRvZ2dsZSIsImN1cnJlbnQiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwidXNlRWZmZWN0IiwiY2xlYXJUaW1lb3V0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VUaW1lb3V0VG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIEhvb2sgdGhhdCBhbGxvd3MgdG9nZ2xpbmcgYSBib29sZWFuIHZhbHVlIGFuZCByZXNldHMgaXQgYWZ0ZXIgYSB0aW1lb3V0LlxuICpcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZGVmYXVsdFZhbHVlIERlZmF1bHQgdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lb3V0TXMgVGltZSBhZnRlciB0aGF0IHRoZSB2YWx1ZSB3aWxsIGJlIHJlc2V0XG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUaW1lb3V0VG9nZ2xlID0gKFxuICAgIGRlZmF1bHRWYWx1ZTogYm9vbGVhbixcbiAgICB0aW1lb3V0TXM6IG51bWJlcixcbik6IHtcbiAgICB2YWx1ZTogYm9vbGVhbjtcbiAgICB0b2dnbGUoKTogdm9pZDtcbn0gPT4ge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihkZWZhdWx0VmFsdWUpO1xuXG4gICAgY29uc3QgdG9nZ2xlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBzZXRWYWx1ZSghZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgdGltZW91dElkLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpLCB0aW1lb3V0TXMpO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZC5jdXJyZW50KTtcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHRvZ2dsZSxcbiAgICAgICAgdmFsdWUsXG4gICAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLGdCQUFnQixHQUFHQSxDQUM1QkMsWUFBcUIsRUFDckJDLFNBQWlCLEtBSWhCO0VBQ0QsTUFBTUMsU0FBUyxHQUFHLElBQUFDLGFBQU0sRUFBcUIsQ0FBQztFQUM5QyxNQUFNLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFVTixZQUFZLENBQUM7RUFFekQsTUFBTU8sTUFBTSxHQUFHQSxDQUFBLEtBQVk7SUFDdkJGLFFBQVEsQ0FBQyxDQUFDTCxZQUFZLENBQUM7SUFDdkJFLFNBQVMsQ0FBQ00sT0FBTyxHQUFHQyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxNQUFNTCxRQUFRLENBQUNMLFlBQVksQ0FBQyxFQUFFQyxTQUFTLENBQUM7RUFDbEYsQ0FBQztFQUVELElBQUFVLGdCQUFTLEVBQUMsTUFBTTtJQUNaLE9BQU8sTUFBTTtNQUNUQyxZQUFZLENBQUNWLFNBQVMsQ0FBQ00sT0FBTyxDQUFDO0lBQ25DLENBQUM7RUFDTCxDQUFDLENBQUM7RUFFRixPQUFPO0lBQ0hELE1BQU07SUFDTkg7RUFDSixDQUFDO0FBQ0wsQ0FBQztBQUFDUyxPQUFBLENBQUFkLGdCQUFBLEdBQUFBLGdCQUFBIiwiaWdub3JlTGlzdCI6W119