fix: PIANO_ROLL activeTracks resolves main tracks, not section
When PIANO_ROLL sub-tab is opened from SECTION-TAB, activeTab switches to midi_xxx, so activeTracks fell back to main project tracks. Section trackIds don't exist in main tracks -> dropdown empty, ghost layers empty, instrument data wrong. Fix: check subTabs for PIANO_ROLL type, resolve parent section tab from parent_tab_id, return its tracks.
This commit is contained in:
@@ -7315,9 +7315,15 @@ const App = () => {
|
||||
}
|
||||
};
|
||||
const activeTracks = useMemo(() => {
|
||||
const st = sessionTabs.find(s => s.id === activeTab);
|
||||
return st ? st.tracks : tracks;
|
||||
}, [activeTab, sessionTabs, tracks]);
|
||||
var st = sessionTabs.find(s => s.id === activeTab);
|
||||
if (st) return st.tracks;
|
||||
var pr = subTabs.find(s => s.id === activeTab && s.type === 'PIANO_ROLL');
|
||||
if (pr && pr.parent_tab_id && pr.parent_tab_id.startsWith('session_')) {
|
||||
var parentSt = sessionTabs.find(s => s.id === pr.parent_tab_id);
|
||||
if (parentSt) return parentSt.tracks;
|
||||
}
|
||||
return tracks;
|
||||
}, [activeTab, sessionTabs, subTabs, tracks]);
|
||||
const activeTracksRef = useRef([]);
|
||||
activeTracksRef.current = activeTracks;
|
||||
const sessionTabsRef = useRef(sessionTabs);
|
||||
|
||||
Reference in New Issue
Block a user