matrix-react-sdk
Version:
SDK for matrix.org using React
47 lines (44 loc) • 5.35 kB
JavaScript
;
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