diff --git a/lib/hooks/theme.js b/lib/hooks/theme.js index 373db7d81..cd8382be6 100644 --- a/lib/hooks/theme.js +++ b/lib/hooks/theme.js @@ -1,69 +1,67 @@ // @flow import * as React from 'react'; import { updateThemeInfoActionType } from '../actions/theme-actions.js'; import type { Shape } from '../types/core.js'; import type { GlobalTheme, GlobalThemeInfo, GlobalThemePreference, } from '../types/theme-types.js'; import { useSelector, useDispatch } from '../utils/redux-utils.js'; function useUpdateSystemTheme(): (colorScheme: ?GlobalTheme) => mixed { const globalThemeInfo = useSelector(state => state.globalThemeInfo); const dispatch = useDispatch(); return React.useCallback( (colorScheme: ?GlobalTheme) => { if (globalThemeInfo.systemTheme === colorScheme) { return; } let updateObject: Shape = { systemTheme: colorScheme, }; if (globalThemeInfo.preference === 'system') { updateObject = { ...updateObject, activeTheme: colorScheme }; } dispatch({ type: updateThemeInfoActionType, payload: updateObject, }); }, [globalThemeInfo, dispatch], ); } function useUpdateThemePreference(): ( themePreference: GlobalThemePreference, ) => mixed { const globalThemeInfo = useSelector(state => state.globalThemeInfo); const dispatch = useDispatch(); return React.useCallback( (themePreference: GlobalThemePreference) => { if (themePreference === globalThemeInfo.preference) { return; } - - let theme = themePreference; - if (themePreference === 'system') { - theme = globalThemeInfo.systemTheme; - } - + const theme = + themePreference === 'system' + ? globalThemeInfo.systemTheme + : themePreference; dispatch({ type: updateThemeInfoActionType, payload: { preference: themePreference, activeTheme: theme, }, }); }, [globalThemeInfo, dispatch], ); } export { useUpdateSystemTheme, useUpdateThemePreference };