fix: replace sync useEffect with render-phase guard to prevent flicker
This commit is contained in:
@@ -4595,7 +4595,11 @@ const PianoRollTabEditor = ({ st, zoom, bpm, viewportWidth, onClose, onUpdateNot
|
||||
const viewBeats = Math.ceil(viewWidth / pixelsPerBeat) + 4;
|
||||
|
||||
const [notes, setNotes] = React.useState(st.notes || []);
|
||||
React.useEffect(() => { setNotes(st.notes || []); }, [st.notes]);
|
||||
const prevNotesRef = React.useRef(st.notes);
|
||||
if (st.notes !== prevNotesRef.current) {
|
||||
prevNotesRef.current = st.notes;
|
||||
if (!draggedNote) setNotes(st.notes || []);
|
||||
}
|
||||
const brushVelocityRef = React.useRef(0.8);
|
||||
const [selectedNoteIds, setSelectedNoteIds] = React.useState([]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user