fix(studio): preserve composed media treatments

This commit is contained in:
ukimsanov
2026-07-24 18:42:37 -07:00
parent 39c2341c4d
commit d5c7d3ee16
3 changed files with 54 additions and 17 deletions
@@ -490,15 +490,27 @@ describe("useColorGradingController", () => {
vi.useRealTimers();
});
it("resetGrading returns to the neutral preset", () => {
it("resetGrading resets Grade fields without clearing Effects or Palette", () => {
const { root, getState } = renderHook(vi.fn());
const grading = normalizeHfColorGrading({
preset: "bright-pop",
lut: { src: "assets/luts/custom.cube", intensity: 0.6 },
effects: { pixelate: 0.5 },
palette: ["#112233", "#ffffff"],
});
if (!grading) throw new Error("expected grading to normalize");
act(() => {
getState().commitColorGrading(brightPopGrading());
getState().commitColorGrading(grading);
});
act(() => {
getState().resetGrading();
});
expect(getState().grading.preset).toBe("neutral");
expect(getState().grading).toMatchObject({
preset: "neutral",
lut: null,
effects: { pixelate: 0.5 },
palette: ["#112233", "#ffffff"],
});
act(() => root.unmount());
});
@@ -542,6 +542,13 @@ export function useColorGradingController({
commitCompare,
setApplyScope,
applyToScope,
resetGrading: () => commitColorGrading(defaultColorGrading()),
resetGrading: () => {
const neutral = defaultColorGrading();
commitColorGrading({
...neutral,
effects: latestGradingRef.current.effects,
palette: latestGradingRef.current.palette,
});
},
};
}