diff --git a/src/data/dataApi.ts b/src/data/dataApi.ts index 9f338870..5ee3b105 100644 --- a/src/data/dataApi.ts +++ b/src/data/dataApi.ts @@ -11,6 +11,7 @@ const locationsUrl = '/assets/data/locations.json'; const HAS_LOGGED_IN = 'hasLoggedIn'; const HAS_SEEN_TUTORIAL = 'hasSeenTutorial'; const USERNAME = 'username'; +const DARKMODE = 'darkMode'; export const getConfData = async () => { const response = await Promise.all([ @@ -41,13 +42,16 @@ export const getUserData = async () => { const response = await Promise.all([ Storage.get({ key: HAS_LOGGED_IN }), Storage.get({ key: HAS_SEEN_TUTORIAL }), + Storage.get({ key: DARKMODE }), Storage.get({ key: USERNAME })]); const isLoggedin = await response[0].value === 'true'; const hasSeenTutorial = await response[1].value === 'true'; - const username = await response[2].value || undefined; + const darkMode = await response[2].value === 'true'; + const username = await response[3].value || undefined; const data = { isLoggedin, hasSeenTutorial, + darkMode, username } return data; @@ -61,6 +65,10 @@ export const setHasSeenTutorialData = async (hasSeenTutorial: boolean) => { await Storage.set({ key: HAS_SEEN_TUTORIAL, value: JSON.stringify(hasSeenTutorial) }); } +export const setDarkModeData = async (darkMode: boolean) => { + await Storage.set({ key: DARKMODE, value: JSON.stringify(darkMode) }); +} + export const setUsernameData = async (username?: string) => { if (!username) { await Storage.remove({ key: USERNAME }); diff --git a/src/data/user/user.actions.ts b/src/data/user/user.actions.ts index 81d79006..68fb1d9d 100644 --- a/src/data/user/user.actions.ts +++ b/src/data/user/user.actions.ts @@ -1,4 +1,4 @@ -import { getUserData, setIsLoggedInData, setUsernameData, setHasSeenTutorialData } from '../dataApi'; +import { getUserData, setIsLoggedInData, setUsernameData, setHasSeenTutorialData, setDarkModeData } from '../dataApi'; import { ActionType } from '../../util/types'; import { UserState } from './user.state'; @@ -47,12 +47,15 @@ export const setHasSeenTutorial = (hasSeenTutorial: boolean) => async (dispatch: type: 'set-has-seen-tutorial', hasSeenTutorial } as const); -} +} -export const setDarkMode = (darkMode: boolean) => ({ - type: 'set-dark-mode', - darkMode -} as const); +export const setDarkMode = (darkMode: boolean) => async (dispatch: React.Dispatch) => { + await setDarkModeData(darkMode); + return ({ + type: 'set-dark-mode', + darkMode + } as const); +} export type UserActions = | ActionType