I'd like to use GSDevTools in a React (18) project with HRM enabled (with Vite).
Using the new gsap.context(), I tried `.create()`ing it inside:
// src/App.js
function App() {
useEffect(() => {
const ctx = gsap.context(() => {
const gsDevTools = GSDevTools.create(); // HERE
gsap.fromTo(...);
});
return () => ctx.revert();
}, [])
return (<>...</>)
}
but once HRM reloads, I got 2 (or more) GSDevTools one over the other.
I've contacted the support and quickly got a quick answer from @Cassie:
What I understand from this, is I have to "manually" cleanup (without the help of `ctx.revert()`) my gsDevTools instance. Here is my try:
// src/App.js
function App() {
// GSDevTools instance
useEffect(() => {
const gsDevTools = GSDevTools.create();
return () => gsDevTools.kill();
}, [])
// Tweens
useEffect(() => {
const ctx = gsap.context(() => {
gsap.fromTo(...);
// other tweens...
});
return () => ctx.revert();
}, [])
return (<>...</>)
}
@Cassie am I correct? Is this the correct way of properly handle GSDevTools ?
As you can see, I have instantiated it in its own `useEffect`: is it something recommended?
Ultimately and to be sure, why GSDevTools is not "auto-cleaned" with `gsap.context()`? Is this something that could come in a next release? (or no, this is intentional)
Thank you