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:
@@ -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());
|
||||||
|
|||||||
@@ -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>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user