UNPKG

@pixi/react

Version:

Write PixiJS applications using React declarative style.

53 lines (49 loc) 1.33 kB
'use strict'; var invariant = require('../helpers/invariant.js'); var useApplication = require('./useApplication.js'); var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.js'); "use strict"; function useTick(options) { const { app, isInitialised } = useApplication.useApplication(); let callback; let context; let isEnabled = true; let priority; if (typeof options === "function") { callback = options; } else { callback = options.callback; context = options.context; isEnabled = options.isEnabled ?? true; priority = options.priority; } invariant.invariant(typeof callback === "function", "`useTick` needs a callback function."); useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => { if (isInitialised) { const ticker = app?.ticker; const wasEnabled = isEnabled; const previousContext = context; const previousCallback = callback; if (isEnabled && ticker) { ticker.add(callback, context, priority); } return () => { if (wasEnabled) { ticker?.remove(previousCallback, previousContext); } }; } }, [ app?.ticker, callback, context, isEnabled, isInitialised, priority ]); } exports.useTick = useTick; //# sourceMappingURL=useTick.js.map