/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/node_modules/@gsap/react/dist/index.js
/*!
* @gsap/react 2.1.0
* https://gsap.com
*
* @license Copyright 2024, GreenSock. All rights reserved.
* Subject to the terms at https://gsap.com/standard-license or for Club GSAP members, the agreement issued with that membership.
* @author: Jack Doyle, jack@greensock.com
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('gsap')) :
typeof define === 'function' && define.amd ? define(['exports', 'react', 'gsap'], factory) :
(global = global || self, factory(global.window = global.window || {}, global.react, global.gsap));
}(this, (function (exports, react, gsap) { 'use strict';
gsap = gsap && Object.prototype.hasOwnProperty.call(gsap, 'default') ? gsap['default'] : gsap;
let useIsomorphicLayoutEffect = typeof window !== "undefined" ? react.useLayoutEffect : react.useEffect,
isConfig = value => value && !Array.isArray(value) && typeof value === "object",
emptyArray = [],
defaultConfig = {},
_gsap = gsap;
const useGSAP = (callback, dependencies = emptyArray) => {
let config = defaultConfig;
if (isConfig(callback)) {
config = callback;
callback = null;
dependencies = "dependencies" in config ? config.dependencies : emptyArray;
} else if (isConfig(dependencies)) {
config = dependencies;
dependencies = "dependencies" in config ? config.dependencies : emptyArray;
}
let {
scope,
revertOnUpdate
} = config,
[mounted, setMounted] = react.useState(false);
callback && typeof callback !== "function" && console.warn("First parameter must be a function or config object");
const context = _gsap.context(() => {}, scope),
contextSafe = func => context.add(null, func),
cleanup = () => context.revert(),
deferCleanup = dependencies && dependencies.length && !revertOnUpdate;
useIsomorphicLayoutEffect(() => {
callback && context.add(callback, scope);
if (!deferCleanup || !mounted) {
return cleanup;
}
}, dependencies);
deferCleanup && useIsomorphicLayoutEffect(() => {
setMounted(true);
return cleanup;
}, emptyArray);
return {
context,
contextSafe
};
};
useGSAP.register = core => {
_gsap = core;
};
useGSAP.headless = true;
exports.useGSAP = useGSAP;
if (typeof(window) === 'undefined' || window !== exports) {Object.defineProperty(exports, '__esModule', { value: true });} else {delete window.default;}
})));