feat: improve layout of SequencerCanvas and SequencerPage for better responsiveness and overflow handling

This commit is contained in:
JSC
2025-09-03 15:06:38 +02:00
parent 25eacbc85f
commit a0d5840166
2 changed files with 20 additions and 23 deletions

View File

@@ -127,12 +127,11 @@ function TrackRow({ track, duration, zoom, isPlaying, currentTime, draggedItem,
ref={setDropRef} ref={setDropRef}
id={`track-${track.id}`} id={`track-${track.id}`}
className={` className={`
w-full h-full border-b border-border/50 h-full border-b border-border/50
relative overflow-hidden relative overflow-hidden
${isOver ? 'bg-accent/30' : 'bg-muted/10'} ${isOver ? 'bg-accent/30' : 'bg-muted/10'}
transition-colors transition-colors
`} `}
style={{ minWidth: `${totalWidth}px` }}
> >
{/* Grid lines for time markers */} {/* Grid lines for time markers */}
<div className="absolute inset-0 pointer-events-none"> <div className="absolute inset-0 pointer-events-none">
@@ -274,13 +273,12 @@ export const SequencerCanvas = forwardRef<HTMLDivElement, SequencerCanvasProps>(
</div> </div>
{/* Tracks */} {/* Tracks */}
<div className="flex-1 overflow-hidden">
<div <div
ref={ref} ref={ref}
className="w-full h-full overflow-auto" className="flex-1 min-h-0 min-w-0 overflow-auto"
onScroll={handleTracksScroll} onScroll={handleTracksScroll}
> >
<div style={{ minWidth: `${totalWidth}px` }}> <div style={{ width: `${totalWidth}px`, minWidth: `${totalWidth}px` }}>
{tracks.map((track) => ( {tracks.map((track) => (
<TrackRow <TrackRow
key={track.id} key={track.id}
@@ -296,7 +294,6 @@ export const SequencerCanvas = forwardRef<HTMLDivElement, SequencerCanvasProps>(
</div> </div>
</div> </div>
</div> </div>
</div>
) )
}) })

View File

@@ -337,7 +337,7 @@ export function SequencerPage() {
</div> </div>
{/* Sequencer Canvas */} {/* Sequencer Canvas */}
<div className="flex-1"> <div className="flex-1 min-w-0 overflow-hidden">
<SequencerCanvas <SequencerCanvas
ref={sequencerCanvasRef} ref={sequencerCanvasRef}
tracks={state.tracks} tracks={state.tracks}