void;
statusLine: HudStatusLineItem | null;
onStatusAction: () => void;
@@ -19,6 +20,7 @@ export const SpaceFocusHudWidget = ({
goal,
timerLabel,
visible,
+ isImmersionMode,
onGoalUpdate,
statusLine,
onStatusAction,
@@ -108,7 +110,7 @@ export const SpaceFocusHudWidget = ({
}
: null
}
- isImmersionMode
+ isImmersionMode={isImmersionMode}
className="pr-[4.2rem]"
onGoalCompleteRequest={handleOpenCompleteSheet}
onStatusAction={onStatusAction}
diff --git a/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx b/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
index f69e191..09a6151 100644
--- a/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
+++ b/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
@@ -20,6 +20,7 @@ import { QuickSoundPopover } from './popovers/QuickSoundPopover';
import { InboxToolPanel } from './panels/InboxToolPanel';
interface SpaceToolsDockWidgetProps {
isFocusMode: boolean;
+ isImmersionMode: boolean;
rooms: RoomTheme[];
selectedRoomId: string;
selectedTimerLabel: string;
@@ -42,12 +43,14 @@ interface SpaceToolsDockWidgetProps {
onRestoreThought: (thought: RecentThought) => void;
onClearInbox: () => RecentThought[];
onResetToSceneRecommended: () => void;
+ onImmersionModeChange: (next: boolean) => void;
onStatusMessage: (payload: HudStatusLinePayload) => void;
onExitRequested: () => void;
}
export const SpaceToolsDockWidget = ({
isFocusMode,
+ isImmersionMode,
rooms,
selectedRoomId,
selectedTimerLabel,
@@ -70,6 +73,7 @@ export const SpaceToolsDockWidget = ({
onRestoreThought,
onClearInbox,
onResetToSceneRecommended,
+ onImmersionModeChange,
onStatusMessage,
onExitRequested,
}: SpaceToolsDockWidgetProps) => {
@@ -411,9 +415,11 @@ export const SpaceToolsDockWidget = ({
rooms={rooms}
selectedRoomId={selectedRoomId}
selectedTimerLabel={selectedTimerLabel}
+ isImmersionMode={isImmersionMode}
sceneRecommendedSoundLabel={sceneRecommendedSoundLabel}
sceneRecommendedTimerLabel={sceneRecommendedTimerLabel}
timerPresets={timerPresets}
+ onImmersionModeChange={onImmersionModeChange}
onSelectRoom={(roomId) => {
onRoomSelect(roomId);
}}
diff --git a/src/widgets/space-workspace/ui/SpaceWorkspaceWidget.tsx b/src/widgets/space-workspace/ui/SpaceWorkspaceWidget.tsx
index b62feb4..acb5f4b 100644
--- a/src/widgets/space-workspace/ui/SpaceWorkspaceWidget.tsx
+++ b/src/widgets/space-workspace/ui/SpaceWorkspaceWidget.tsx
@@ -167,6 +167,7 @@ export const SpaceWorkspaceWidget = () => {
);
const [workspaceMode, setWorkspaceMode] = useState('setup');
+ const [isImmersionMode, setImmersionMode] = useState(false);
const [selectedRoomId, setSelectedRoomId] = useState(initialRoomId);
const [selectedTimerLabel, setSelectedTimerLabel] = useState(initialTimerLabel);
const [goalInput, setGoalInput] = useState(initialGoal);
@@ -377,6 +378,7 @@ export const SpaceWorkspaceWidget = () => {
goal={goalInput.trim()}
timerLabel={selectedTimerLabel}
visible={isFocusMode}
+ isImmersionMode={isImmersionMode}
statusLine={activeStatus}
onStatusAction={runActiveAction}
onStatusMessage={pushStatusLine}
@@ -405,6 +407,8 @@ export const SpaceWorkspaceWidget = () => {
onSetSoundVolume={setMasterVolume}
isSoundMuted={isMuted}
onSetSoundMuted={setMuted}
+ isImmersionMode={isImmersionMode}
+ onImmersionModeChange={setImmersionMode}
onCaptureThought={(note) => addThought(note, selectedRoom.name)}
onDeleteThought={removeThought}
onSetThoughtCompleted={setThoughtCompleted}