feat(sound): Sound Quick 변경 시 override 적용 경로를 명시화

맥락:
- 사운드 override는 우하단 Quick 변경에서 시작되는 규칙이 핵심이라, 코드 경로를 분명히 분리할 필요가 있었습니다.

변경사항:
- SpaceToolsDockWidget의 사운드 선택 콜백을 onQuickSoundSelect로 분리해 Quick 전환 경로를 명시했습니다.
- workspace에서 우하단 Quick 선택 콜백을 override.sound 활성화 핸들러에 직접 연결했습니다.

검증:
- npx tsc --noEmit

세션-상태: 우하단 Sound Quick 선택이 override.sound 규칙과 1:1로 연결됩니다.
세션-다음: (선택) Scene/Timer/Sound 및 override 상태를 로컬에 저장/복원합니다.
세션-리스크: Setup에서의 수동 사운드 선택도 override를 켜므로 UX 기대치 점검이 필요할 수 있습니다.
This commit is contained in:
2026-03-05 12:17:29 +09:00
parent ac63f94ed8
commit 4556b64bbd
2 changed files with 4 additions and 4 deletions

View File

@@ -35,7 +35,7 @@ interface SpaceToolsDockWidgetProps {
sceneRecommendedTimerLabel: string; sceneRecommendedTimerLabel: string;
onRoomSelect: (roomId: string) => void; onRoomSelect: (roomId: string) => void;
onTimerSelect: (timerLabel: string) => void; onTimerSelect: (timerLabel: string) => void;
onSelectPreset: (presetId: string) => void; onQuickSoundSelect: (presetId: string) => void;
onCaptureThought: (note: string) => RecentThought | null; onCaptureThought: (note: string) => RecentThought | null;
onDeleteThought: (thoughtId: string) => RecentThought | null; onDeleteThought: (thoughtId: string) => RecentThought | null;
onSetThoughtCompleted: (thoughtId: string, isCompleted: boolean) => RecentThought | null; onSetThoughtCompleted: (thoughtId: string, isCompleted: boolean) => RecentThought | null;
@@ -63,7 +63,7 @@ export const SpaceToolsDockWidget = ({
sceneRecommendedTimerLabel, sceneRecommendedTimerLabel,
onRoomSelect, onRoomSelect,
onTimerSelect, onTimerSelect,
onSelectPreset, onQuickSoundSelect,
onCaptureThought, onCaptureThought,
onDeleteThought, onDeleteThought,
onSetThoughtCompleted, onSetThoughtCompleted,
@@ -382,7 +382,7 @@ export const SpaceToolsDockWidget = ({
onVolumeChange={handleVolumeChange} onVolumeChange={handleVolumeChange}
onVolumeKeyDown={handleVolumeKeyDown} onVolumeKeyDown={handleVolumeKeyDown}
onSelectPreset={(presetId) => { onSelectPreset={(presetId) => {
onSelectPreset(presetId); onQuickSoundSelect(presetId);
setOpenPopover(null); setOpenPopover(null);
}} }}
/> />

View File

@@ -314,7 +314,7 @@ export const SpaceWorkspaceWidget = () => {
selectedPresetId={selectedPresetId} selectedPresetId={selectedPresetId}
onRoomSelect={handleSelectRoom} onRoomSelect={handleSelectRoom}
onTimerSelect={(timerLabel) => handleSelectTimer(timerLabel, true)} onTimerSelect={(timerLabel) => handleSelectTimer(timerLabel, true)}
onSelectPreset={(presetId) => handleSelectSound(presetId, true)} onQuickSoundSelect={(presetId) => handleSelectSound(presetId, true)}
sceneRecommendedSoundLabel={selectedRoom.recommendedSound} sceneRecommendedSoundLabel={selectedRoom.recommendedSound}
sceneRecommendedTimerLabel={resolveTimerLabelFromPresetId(selectedRoom.recommendedTimerPresetId) ?? selectedTimerLabel} sceneRecommendedTimerLabel={resolveTimerLabelFromPresetId(selectedRoom.recommendedTimerPresetId) ?? selectedTimerLabel}
onResetToSceneRecommended={handleResetToSceneRecommended} onResetToSceneRecommended={handleResetToSceneRecommended}