refactor: remove configurable track height setting

Removed the defaultTrackHeight setting from UI preferences as it doesn't need
to be user-configurable. All tracks now use DEFAULT_TRACK_HEIGHT constant (400px).

Changes:
- Removed defaultTrackHeight from UISettings interface
- Removed track height slider from GlobalSettingsDialog
- Updated AudioEditor to use DEFAULT_TRACK_HEIGHT constant directly
- Simplified dependency arrays in addTrack callbacks

This simplifies the settings interface while maintaining the same visual behavior.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-19 20:55:45 +01:00
parent 66a515ba79
commit aba26126cc
3 changed files with 5 additions and 29 deletions

View File

@@ -33,6 +33,7 @@ import { formatDuration } from '@/lib/audio/decoder';
import { useHistory } from '@/lib/hooks/useHistory'; import { useHistory } from '@/lib/hooks/useHistory';
import { useRecording } from '@/lib/hooks/useRecording'; import { useRecording } from '@/lib/hooks/useRecording';
import { useSettings } from '@/lib/hooks/useSettings'; import { useSettings } from '@/lib/hooks/useSettings';
import { DEFAULT_TRACK_HEIGHT } from '@/types/track';
import type { EffectType } from '@/lib/audio/effects/chain'; import type { EffectType } from '@/lib/audio/effects/chain';
import { import {
createMultiTrackCutCommand, createMultiTrackCutCommand,
@@ -149,19 +150,19 @@ export function AudioEditor() {
// Wrap addTrack to auto-select first track when adding to empty project // Wrap addTrack to auto-select first track when adding to empty project
const addTrack = React.useCallback((name?: string) => { const addTrack = React.useCallback((name?: string) => {
const shouldAutoSelect = shouldAutoSelectRef.current; const shouldAutoSelect = shouldAutoSelectRef.current;
const track = addTrackOriginal(name, settings.ui.defaultTrackHeight); const track = addTrackOriginal(name, DEFAULT_TRACK_HEIGHT);
if (shouldAutoSelect) { if (shouldAutoSelect) {
setSelectedTrackId(track.id); setSelectedTrackId(track.id);
shouldAutoSelectRef.current = false; // Only auto-select once shouldAutoSelectRef.current = false; // Only auto-select once
} }
return track; return track;
}, [addTrackOriginal, settings.ui.defaultTrackHeight]); }, [addTrackOriginal]);
// Wrap addTrackFromBuffer to auto-select first track when adding to empty project // Wrap addTrackFromBuffer to auto-select first track when adding to empty project
const addTrackFromBuffer = React.useCallback((buffer: AudioBuffer, name?: string) => { const addTrackFromBuffer = React.useCallback((buffer: AudioBuffer, name?: string) => {
console.log(`[AudioEditor] addTrackFromBuffer wrapper called: ${name}, shouldAutoSelect: ${shouldAutoSelectRef.current}`); console.log(`[AudioEditor] addTrackFromBuffer wrapper called: ${name}, shouldAutoSelect: ${shouldAutoSelectRef.current}`);
const shouldAutoSelect = shouldAutoSelectRef.current; const shouldAutoSelect = shouldAutoSelectRef.current;
const track = addTrackFromBufferOriginal(buffer, name, settings.ui.defaultTrackHeight); const track = addTrackFromBufferOriginal(buffer, name, DEFAULT_TRACK_HEIGHT);
console.log(`[AudioEditor] Track created: ${track.name} (${track.id})`); console.log(`[AudioEditor] Track created: ${track.name} (${track.id})`);
if (shouldAutoSelect) { if (shouldAutoSelect) {
console.log(`[AudioEditor] Auto-selecting track: ${track.id}`); console.log(`[AudioEditor] Auto-selecting track: ${track.id}`);
@@ -169,7 +170,7 @@ export function AudioEditor() {
shouldAutoSelectRef.current = false; // Only auto-select once shouldAutoSelectRef.current = false; // Only auto-select once
} }
return track; return track;
}, [addTrackFromBufferOriginal, settings.ui.defaultTrackHeight]); }, [addTrackFromBufferOriginal]);
// Track which parameters are being touched (for touch/latch modes) // Track which parameters are being touched (for touch/latch modes)
const [touchedParameters, setTouchedParameters] = React.useState<Set<string>>(new Set()); const [touchedParameters, setTouchedParameters] = React.useState<Set<string>>(new Set());

View File

@@ -400,29 +400,6 @@ export function GlobalSettingsDialog({
Adjust the UI font size. Requires reload. Adjust the UI font size. Requires reload.
</p> </p>
</div> </div>
{/* Default Track Height */}
<div className="space-y-2">
<div className="flex items-center justify-between">
<label className="text-sm font-medium">Default Track Height</label>
<span className="text-xs font-mono text-muted-foreground">
{settings.ui.defaultTrackHeight}px
</span>
</div>
<Slider
value={[settings.ui.defaultTrackHeight]}
onValueChange={([value]) =>
onUISettingsChange({ defaultTrackHeight: value })
}
min={120}
max={600}
step={20}
className="w-full"
/>
<p className="text-xs text-muted-foreground">
Initial height for new tracks. Default: 400px.
</p>
</div>
</div> </div>
)} )}

View File

@@ -11,7 +11,6 @@ export interface AudioSettings {
export interface UISettings { export interface UISettings {
theme: 'dark' | 'light' | 'auto'; theme: 'dark' | 'light' | 'auto';
fontSize: 'small' | 'medium' | 'large'; fontSize: 'small' | 'medium' | 'large';
defaultTrackHeight: number; // 120-400px
} }
export interface EditorSettings { export interface EditorSettings {
@@ -45,7 +44,6 @@ const DEFAULT_SETTINGS: Settings = {
ui: { ui: {
theme: 'dark', theme: 'dark',
fontSize: 'medium', fontSize: 'medium',
defaultTrackHeight: 400,
}, },
editor: { editor: {
autoSaveInterval: 3, // 3 seconds autoSaveInterval: 3, // 3 seconds