fix(studio): add GSAP drag intercept feature flag, disabled by default (#1341)

Add VITE_STUDIO_ENABLE_GSAP_DRAG_INTERCEPT env var (default: false) to
gate the GSAP drag/resize/rotation intercept in useDomEditSession. When
off, dragging GSAP elements falls through to the standard CSS path
instead of committing via script mutation.

Manual dragging (STUDIO_PREVIEW_MANUAL_EDITING_ENABLED) remains on.
This commit is contained in:
Miguel Ángel
2026-06-11 02:08:32 -04:00
committed by GitHub
parent ef18613975
commit a5bc52bad1
3 changed files with 25 additions and 4 deletions
@@ -25,6 +25,18 @@ describe("manual editing availability", () => {
expect(availability.STUDIO_MOTION_PANEL_ENABLED).toBe(false);
});
it("disables GSAP drag intercept by default", async () => {
const availability = await loadAvailabilityWithEnv({});
expect(availability.STUDIO_GSAP_DRAG_INTERCEPT_ENABLED).toBe(false);
});
it("enables GSAP drag intercept when env var is set", async () => {
const availability = await loadAvailabilityWithEnv({
VITE_STUDIO_ENABLE_GSAP_DRAG_INTERCEPT: "true",
});
expect(availability.STUDIO_GSAP_DRAG_INTERCEPT_ENABLED).toBe(true);
});
it("disables preview selection when the inspector panel flag is explicitly off", async () => {
const availability = await loadAvailabilityWithEnv({
VITE_STUDIO_ENABLE_INSPECTOR_PANELS: "0",
@@ -47,6 +47,12 @@ export const STUDIO_PREVIEW_MANUAL_EDITING_ENABLED = resolveStudioBooleanEnvFlag
true,
);
export const STUDIO_GSAP_DRAG_INTERCEPT_ENABLED = resolveStudioBooleanEnvFlag(
env,
["VITE_STUDIO_ENABLE_GSAP_DRAG_INTERCEPT"],
false,
);
export const STUDIO_INSPECTOR_PANELS_ENABLED = resolveStudioBooleanEnvFlag(
env,
[STUDIO_INSPECTOR_PANELS_ENV, "VITE_STUDIO_INSPECTOR_PANELS_ENABLED"],