UNPKG

@pixi/react

Version:

Write PixiJS applications using React declarative style.

51 lines (48 loc) 1.26 kB
import { invariant } from '../helpers/invariant.mjs'; import { useApplication } from './useApplication.mjs'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.mjs'; "use strict"; function useTick(options) { const { app, isInitialised } = 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(typeof callback === "function", "`useTick` needs a callback function."); 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 ]); } export { useTick }; //# sourceMappingURL=useTick.mjs.map