feat: implemented drag-n-drop to import KGOne generated audio/MIDI file feature

This commit is contained in:
Xiaohan-Tian
2026-04-15 22:40:47 -07:00
parent cadd51c3a4
commit 7b82572d5c
8 changed files with 464 additions and 13 deletions
+17 -1
View File
@@ -38,7 +38,8 @@ const MainContent: React.FC<MainContentProps> = ({
setShowPianoRoll,
setActiveRegionId,
addTrack,
addAudioTrack
addAudioTrack,
projectName,
} = useProjectStore();
// State to store regions
@@ -239,6 +240,19 @@ const MainContent: React.FC<MainContentProps> = ({
});
};
// Handle regions dropped from K.G.One panel (external drag-and-drop)
const handleExternalDropComplete = (trackIndex: number, regionUI: RegionUI) => {
const track = tracks[trackIndex];
if (!track) return;
updateTrack(track);
setSelectedTrack(track.getId().toString());
setRegions(prev => {
const updated = [...prev, regionUI];
selectRegion(regionUI.id, updated);
return updated;
});
};
// Handle region updates (resize, move, etc.)
const handleRegionUpdated = (
regionId: string,
@@ -742,10 +756,12 @@ const MainContent: React.FC<MainContentProps> = ({
draggedTrackIndex={draggedTrackIndex}
dragOverTrackIndex={dragOverTrackIndex}
selectedRegionId={selectedRegionId}
projectName={projectName}
onRegionCreated={handleRegionCreated}
onRegionUpdated={handleRegionUpdated}
onRegionClick={handleRegionClick}
onOpenPianoRoll={handleOpenPianoRoll}
onExternalDropComplete={handleExternalDropComplete}
/>
</div>
</div>