refactor(control-center): Scene/Time 중심으로 단순화하고 추천 복원 흐름 추가

맥락:
- Control Center가 설정 패널처럼 무거워 보여 Focus 몰입 흐름에서 탐색 부담이 컸습니다.

변경사항:
- Control Center에서 Sound 섹션과 Preset Packs 섹션을 제거하고 Scene/Time 2개 핵심 섹션만 유지했습니다.
- 추천 정보를 비인터랙션 1줄(추천 사운드 · 추천 타이머)로 노출하도록 구성했습니다.
- 하단에 tertiary 액션 '추천으로 되돌리기'를 추가해 override 초기화 + 추천값 복원 진입점을 만들었습니다.
- 더 이상 사용하지 않는 quick pack 모델 파일을 제거했습니다.

검증:
- npx tsc --noEmit

세션-상태: Control Center가 Scene/Time 중심의 경량 구조로 정리되었습니다.
세션-다음: 우하단 Sound Quick 변경 시 override.sound가 명시적으로 적용되는 경로를 분리합니다.
세션-리스크: 추천 정보는 현재 텍스트 기반이라 향후 다국어/라벨 변경 시 매핑 점검이 필요합니다.
This commit is contained in:
2026-03-05 12:12:52 +09:00
parent f24205f324
commit ac63f94ed8
3 changed files with 18 additions and 159 deletions

View File

@@ -1,31 +0,0 @@
interface ApplyQuickPackParams {
packId: 'balanced' | 'deep-work' | 'gentle';
onTimerSelect: (timerLabel: string) => void;
onSelectPreset: (presetId: string) => void;
onApplied?: (message: string) => void;
}
export const applyQuickPack = ({
packId,
onTimerSelect,
onSelectPreset,
onApplied,
}: ApplyQuickPackParams) => {
if (packId === 'balanced') {
onTimerSelect('25/5');
onSelectPreset('rain-focus');
onApplied?.('Balanced 팩을 적용했어요.');
return;
}
if (packId === 'deep-work') {
onTimerSelect('50/10');
onSelectPreset('deep-white');
onApplied?.('Deep Work 팩을 적용했어요.');
return;
}
onTimerSelect('25/5');
onSelectPreset('silent');
onApplied?.('Gentle 팩을 적용했어요.');
};

View File

@@ -12,7 +12,6 @@ import { cn } from '@/shared/lib/cn';
import { ControlCenterSheetWidget } from '@/widgets/control-center-sheet';
import { SpaceSideSheet } from '@/widgets/space-sheet-shell';
import type { SpaceAnchorPopoverId, SpaceUtilityPanelId } from '../model/types';
import { applyQuickPack } from '../model/applyQuickPack';
import { getQuickSoundPresets } from '../model/getQuickSoundPresets';
import { ANCHOR_ICON, formatThoughtCount, UTILITY_PANEL_TITLE } from './constants';
import { FocusRightRail } from './FocusRightRail';
@@ -246,13 +245,6 @@ export const SpaceToolsDockWidget = ({
openUtilityPanel('control-center');
};
const handleApplyPack = (packId: 'balanced' | 'deep-work' | 'gentle') =>
applyQuickPack({
packId,
onTimerSelect,
onSelectPreset,
});
const showVolumeFeedback = (nextVolume: number) => {
setVolumeFeedback(`${nextVolume}%`);
@@ -419,21 +411,15 @@ export const SpaceToolsDockWidget = ({
rooms={rooms}
selectedRoomId={selectedRoomId}
selectedTimerLabel={selectedTimerLabel}
selectedSoundPresetId={selectedPresetId}
sceneRecommendedSoundLabel={sceneRecommendedSoundLabel}
sceneRecommendedTimerLabel={sceneRecommendedTimerLabel}
timerPresets={timerPresets}
soundPresets={SOUND_PRESETS}
onSelectRoom={(roomId) => {
onRoomSelect(roomId);
}}
onSelectTimer={(label) => {
onTimerSelect(label);
}}
onSelectSound={(presetId) => {
onSelectPreset(presetId);
}}
onApplyPack={handleApplyPack}
onLockedClick={handleLockedClick}
onResetToRecommended={onResetToSceneRecommended}
/>