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:
2026-07-28 08:01:22 +07:00
parent 2baf034852
commit e4d6405b37
3 changed files with 16 additions and 4 deletions
+9 -3
View File
@@ -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);