fix(manifold): preserve slider overrides until input moves
This commit is contained in:
parent
0010097d01
commit
491820ac79
2 changed files with 16 additions and 4 deletions
|
|
@ -116,7 +116,7 @@ CompositeStage/SandwichStage. `Manifold.tsx` is the full-bleed 2D input surface
|
|||
+ feedback markers; pointer → `onMove`; **double-click the input mark → follow-mouse mode**, a window
|
||||
`pointermove` listener mapping the whole viewport onto this surface's space, Esc or a second
|
||||
double-click exits). `OutputStage.tsx` is the output columns; click or drag a bar to temporarily
|
||||
audition a clamped value (the next engine tick restores the live MLP), and it takes a `compact` prop
|
||||
audition a clamped value (the next actual input change restores the live MLP), and it takes a `compact` prop
|
||||
for the narrow pane.
|
||||
|
||||
- **Output modes** (the TOP dock selector, NOT the same axis as `focus`): `src/console/output-mode.ts`
|
||||
|
|
|
|||
|
|
@ -647,9 +647,21 @@ export function ConsoleApp() {
|
|||
}),
|
||||
);
|
||||
|
||||
// A direct slider gesture is only an audition value. The next engine tick
|
||||
// (normally caused by moving the input) returns that param to the live MLP.
|
||||
// A direct slider gesture is only an audition value. Keep it visible while
|
||||
// the input is stable; the next actual input change returns that param to
|
||||
// the live MLP.
|
||||
const lastInputRef = useRef<number[] | null>(null);
|
||||
useEffect(() => {
|
||||
if (!engine) return;
|
||||
const nextInput = Array.from(engine.inputVector());
|
||||
const previousInput = lastInputRef.current;
|
||||
lastInputRef.current = nextInput;
|
||||
const inputChanged =
|
||||
previousInput !== null &&
|
||||
(previousInput.length !== nextInput.length ||
|
||||
nextInput.some((value, index) => value !== previousInput[index]));
|
||||
if (!inputChanged) return;
|
||||
|
||||
setParams((ps) => {
|
||||
let changed = false;
|
||||
const next = ps.map((p) => {
|
||||
|
|
@ -659,7 +671,7 @@ export function ConsoleApp() {
|
|||
});
|
||||
return changed ? next : ps;
|
||||
});
|
||||
}, [version]);
|
||||
}, [engine, version]);
|
||||
|
||||
/**
|
||||
* The single output-card mutation seam. Callers provide the desired active
|
||||
|
|
|
|||
Loading…
Reference in a new issue