feat: apply defaultTrackHeight and defaultZoom settings
- Modified createTrack and createTrackFromBuffer to accept height parameter - Updated useMultiTrack to pass height when creating tracks - Applied settings.ui.defaultTrackHeight when adding new tracks - Applied settings.editor.defaultZoom for initial zoom state - Removed duplicate useSettings hook declaration in AudioEditor - New tracks now use configured default height from settings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -50,9 +50,19 @@ import {
|
||||
import { getAudioContext } from '@/lib/audio/context';
|
||||
|
||||
export function AudioEditor() {
|
||||
// Settings hook
|
||||
const {
|
||||
settings,
|
||||
updateAudioSettings,
|
||||
updateUISettings,
|
||||
updateEditorSettings,
|
||||
updatePerformanceSettings,
|
||||
resetCategory,
|
||||
} = useSettings();
|
||||
|
||||
const [importDialogOpen, setImportDialogOpen] = React.useState(false);
|
||||
const [selectedTrackId, setSelectedTrackId] = React.useState<string | null>(null);
|
||||
const [zoom, setZoom] = React.useState(1);
|
||||
const [zoom, setZoom] = React.useState(settings.editor.defaultZoom);
|
||||
const [masterVolume, setMasterVolume] = React.useState(0.8);
|
||||
const [masterPan, setMasterPan] = React.useState(0);
|
||||
const [isMasterMuted, setIsMasterMuted] = React.useState(false);
|
||||
@@ -90,16 +100,6 @@ export function AudioEditor() {
|
||||
setSampleRate,
|
||||
} = useRecording();
|
||||
|
||||
// Settings hook
|
||||
const {
|
||||
settings,
|
||||
updateAudioSettings,
|
||||
updateUISettings,
|
||||
updateEditorSettings,
|
||||
updatePerformanceSettings,
|
||||
resetCategory,
|
||||
} = useSettings();
|
||||
|
||||
// Multi-track hooks
|
||||
const {
|
||||
tracks,
|
||||
@@ -122,19 +122,19 @@ export function AudioEditor() {
|
||||
// Wrap addTrack to auto-select first track when adding to empty project
|
||||
const addTrack = React.useCallback((name?: string) => {
|
||||
const shouldAutoSelect = shouldAutoSelectRef.current;
|
||||
const track = addTrackOriginal(name);
|
||||
const track = addTrackOriginal(name, settings.ui.defaultTrackHeight);
|
||||
if (shouldAutoSelect) {
|
||||
setSelectedTrackId(track.id);
|
||||
shouldAutoSelectRef.current = false; // Only auto-select once
|
||||
}
|
||||
return track;
|
||||
}, [addTrackOriginal]);
|
||||
}, [addTrackOriginal, settings.ui.defaultTrackHeight]);
|
||||
|
||||
// Wrap addTrackFromBuffer to auto-select first track when adding to empty project
|
||||
const addTrackFromBuffer = React.useCallback((buffer: AudioBuffer, name?: string) => {
|
||||
console.log(`[AudioEditor] addTrackFromBuffer wrapper called: ${name}, shouldAutoSelect: ${shouldAutoSelectRef.current}`);
|
||||
const shouldAutoSelect = shouldAutoSelectRef.current;
|
||||
const track = addTrackFromBufferOriginal(buffer, name);
|
||||
const track = addTrackFromBufferOriginal(buffer, name, settings.ui.defaultTrackHeight);
|
||||
console.log(`[AudioEditor] Track created: ${track.name} (${track.id})`);
|
||||
if (shouldAutoSelect) {
|
||||
console.log(`[AudioEditor] Auto-selecting track: ${track.id}`);
|
||||
@@ -142,7 +142,7 @@ export function AudioEditor() {
|
||||
shouldAutoSelectRef.current = false; // Only auto-select once
|
||||
}
|
||||
return track;
|
||||
}, [addTrackFromBufferOriginal]);
|
||||
}, [addTrackFromBufferOriginal, settings.ui.defaultTrackHeight]);
|
||||
|
||||
// Track which parameters are being touched (for touch/latch modes)
|
||||
const [touchedParameters, setTouchedParameters] = React.useState<Set<string>>(new Set());
|
||||
|
||||
Reference in New Issue
Block a user