feat: get last focus mode mode from LS

This commit is contained in:
Johannes Millan 2025-02-15 17:43:19 +01:00
parent 9dcf154042
commit 67ef5c03fa
3 changed files with 21 additions and 2 deletions

View file

@ -35,6 +35,8 @@ export enum LS {
WEB_APP_INSTALL = 'WEB_APP_INSTALL',
IS_ADD_TO_BOTTOM = 'SUP_IS_ADD_TO_BOTTOM',
FOCUS_MODE_MODE = 'FOCUS_MODE_MODE',
}
// SESSION STORAGE

View file

@ -3,6 +3,7 @@ import { Actions, createEffect, ofType } from '@ngrx/effects';
import {
cancelFocusSession,
focusSessionDone,
setFocusModeMode,
setFocusSessionActivePage,
setFocusSessionTimeElapsed,
setFocusSessionTimeToGo,
@ -39,6 +40,7 @@ import { IS_ELECTRON } from '../../../app.constants';
import { IdleService } from '../../idle/idle.service';
import { FocusModeMode, FocusModePage } from '../focus-mode.const';
import { selectFocusModeConfig } from '../../config/store/global-config.reducer';
import { LS } from '../../../core/persistence/storage-keys.const';
const TICK_DURATION = 500;
const SESSION_DONE_SOUND = 'positive.ogg';
@ -191,4 +193,15 @@ export class FocusModeEffects {
),
{ dispatch: false },
);
modeToLS$ = createEffect(
() =>
this._actions$.pipe(
ofType(setFocusModeMode),
tap(({ mode }) => {
localStorage.setItem(LS.FOCUS_MODE_MODE, mode);
}),
),
{ dispatch: false },
);
}

View file

@ -12,6 +12,7 @@ import {
startFocusSession,
} from './focus-mode.actions';
import { FocusModeMode, FocusModePage } from '../focus-mode.const';
import { LS } from '../../../core/persistence/storage-keys.const';
const DEFAULT_FOCUS_SESSION_DURATION = 25 * 60 * 1000;
const USE_REMAINING_SESSION_TIME_THRESHOLD = 60 * 1000;
@ -28,6 +29,8 @@ export interface State {
lastFocusSessionDuration: number;
}
const focusModeModeFromLS = localStorage.getItem(LS.FOCUS_MODE_MODE);
export const initialState: State = {
isFocusOverlayShown: false,
isFocusSessionRunning: false,
@ -36,8 +39,9 @@ export const initialState: State = {
focusSessionTimeToGo: 0,
focusSessionTimeElapsed: 0,
focusSessionActivePage: FocusModePage.TaskSelection,
// TODO get from LS if available
mode: FocusModeMode.Flowtime,
mode: Object.values(FocusModeMode).includes(focusModeModeFromLS as any)
? (focusModeModeFromLS as any)
: FocusModeMode.Flowtime,
};
export const focusModeReducer = createReducer<State>(