UNPKG

matrix-react-sdk

Version:
47 lines (44 loc) 5.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useAnimation = useAnimation; var _logger = require("matrix-js-sdk/src/logger"); var _react = require("react"); var _SettingsStore = _interopRequireDefault(require("../settings/SettingsStore")); /* 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. */ const debuglog = (...args) => { if (_SettingsStore.default.getValue("debug_animation")) { _logger.logger.log.call(console, "Animation debuglog:", ...args); } }; function useAnimation(enabled, callback) { const handle = (0, _react.useRef)(null); const handler = (0, _react.useCallback)(timestamp => { if (callback(timestamp)) { handle.current = requestAnimationFrame(handler); } else { debuglog("Finished animation!"); } }, [callback]); (0, _react.useEffect)(() => { debuglog("Started animation!"); if (enabled) { handle.current = requestAnimationFrame(handler); } return () => { if (handle.current) { debuglog("Aborted animation!"); cancelAnimationFrame(handle.current); handle.current = null; } }; }, [enabled, handler]); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9TZXR0aW5nc1N0b3JlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImRlYnVnbG9nIiwiYXJncyIsIlNldHRpbmdzU3RvcmUiLCJnZXRWYWx1ZSIsImxvZ2dlciIsImxvZyIsImNhbGwiLCJjb25zb2xlIiwidXNlQW5pbWF0aW9uIiwiZW5hYmxlZCIsImNhbGxiYWNrIiwiaGFuZGxlIiwidXNlUmVmIiwiaGFuZGxlciIsInVzZUNhbGxiYWNrIiwidGltZXN0YW1wIiwiY3VycmVudCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInVzZUVmZmVjdCIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUFuaW1hdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbG9nZ2VyXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFNldHRpbmdzU3RvcmUgZnJvbSBcIi4uL3NldHRpbmdzL1NldHRpbmdzU3RvcmVcIjtcblxuY29uc3QgZGVidWdsb2cgPSAoLi4uYXJnczogYW55W10pOiB2b2lkID0+IHtcbiAgICBpZiAoU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShcImRlYnVnX2FuaW1hdGlvblwiKSkge1xuICAgICAgICBsb2dnZXIubG9nLmNhbGwoY29uc29sZSwgXCJBbmltYXRpb24gZGVidWdsb2c6XCIsIC4uLmFyZ3MpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBbmltYXRpb24oZW5hYmxlZDogYm9vbGVhbiwgY2FsbGJhY2s6ICh0aW1lc3RhbXA6IERPTUhpZ2hSZXNUaW1lU3RhbXApID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGUgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICh0aW1lc3RhbXA6IERPTUhpZ2hSZXNUaW1lU3RhbXApID0+IHtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayh0aW1lc3RhbXApKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGFuZGxlcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlYnVnbG9nKFwiRmluaXNoZWQgYW5pbWF0aW9uIVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW2NhbGxiYWNrXSxcbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZGVidWdsb2coXCJTdGFydGVkIGFuaW1hdGlvbiFcIik7XG4gICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgICBoYW5kbGUuY3VycmVudCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGhhbmRsZS5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgZGVidWdsb2coXCJBYm9ydGVkIGFuaW1hdGlvbiFcIik7XG4gICAgICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGhhbmRsZS5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgaGFuZGxlcl0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0EsTUFBTUksUUFBUSxHQUFHQSxDQUFDLEdBQUdDLElBQVcsS0FBVztFQUN2QyxJQUFJQyxzQkFBYSxDQUFDQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRTtJQUMzQ0MsY0FBTSxDQUFDQyxHQUFHLENBQUNDLElBQUksQ0FBQ0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEdBQUdOLElBQUksQ0FBQztFQUM1RDtBQUNKLENBQUM7QUFFTSxTQUFTTyxZQUFZQSxDQUFDQyxPQUFnQixFQUFFQyxRQUFxRCxFQUFRO0VBQ3hHLE1BQU1DLE1BQU0sR0FBRyxJQUFBQyxhQUFNLEVBQWdCLElBQUksQ0FBQztFQUUxQyxNQUFNQyxPQUFPLEdBQUcsSUFBQUMsa0JBQVcsRUFDdEJDLFNBQThCLElBQUs7SUFDaEMsSUFBSUwsUUFBUSxDQUFDSyxTQUFTLENBQUMsRUFBRTtNQUNyQkosTUFBTSxDQUFDSyxPQUFPLEdBQUdDLHFCQUFxQixDQUFDSixPQUFPLENBQUM7SUFDbkQsQ0FBQyxNQUFNO01BQ0hiLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztJQUNuQztFQUNKLENBQUMsRUFDRCxDQUFDVSxRQUFRLENBQ2IsQ0FBQztFQUVELElBQUFRLGdCQUFTLEVBQUMsTUFBTTtJQUNabEIsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0lBQzlCLElBQUlTLE9BQU8sRUFBRTtNQUNURSxNQUFNLENBQUNLLE9BQU8sR0FBR0MscUJBQXFCLENBQUNKLE9BQU8sQ0FBQztJQUNuRDtJQUNBLE9BQU8sTUFBTTtNQUNULElBQUlGLE1BQU0sQ0FBQ0ssT0FBTyxFQUFFO1FBQ2hCaEIsUUFBUSxDQUFDLG9CQUFvQixDQUFDO1FBQzlCbUIsb0JBQW9CLENBQUNSLE1BQU0sQ0FBQ0ssT0FBTyxDQUFDO1FBQ3BDTCxNQUFNLENBQUNLLE9BQU8sR0FBRyxJQUFJO01BQ3pCO0lBQ0osQ0FBQztFQUNMLENBQUMsRUFBRSxDQUFDUCxPQUFPLEVBQUVJLE9BQU8sQ0FBQyxDQUFDO0FBQzFCIiwiaWdub3JlTGlzdCI6W119