Merge remote-tracking branch 'origin/main' into ditto-auth
This commit is contained in:
@ -1,10 +1,12 @@
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import { getSettings } from 'soapbox/actions/settings';
|
||||
import { settingsSchema } from 'soapbox/schemas/soapbox/settings';
|
||||
|
||||
import { useAppSelector } from './useAppSelector';
|
||||
|
||||
import type { Map as ImmutableMap } from 'immutable';
|
||||
|
||||
/** Get the user settings from the store */
|
||||
export const useSettings = (): ImmutableMap<string, any> => {
|
||||
return useAppSelector((state) => getSettings(state));
|
||||
export const useSettings = () => {
|
||||
const data = useAppSelector((state) => getSettings(state));
|
||||
return useMemo(() => settingsSchema.parse(data.toJS()), [data]);
|
||||
};
|
||||
|
||||
@ -8,12 +8,10 @@ type Theme = 'light' | 'dark';
|
||||
* regardless of whether that's by system theme or direct setting.
|
||||
*/
|
||||
const useTheme = (): Theme => {
|
||||
const settings = useSettings();
|
||||
const { themeMode } = useSettings();
|
||||
const systemTheme = useSystemTheme();
|
||||
|
||||
const userTheme = settings.get('themeMode');
|
||||
const darkMode = userTheme === 'dark' || (userTheme === 'system' && systemTheme === 'dark');
|
||||
|
||||
const darkMode = themeMode === 'dark' || (themeMode === 'system' && systemTheme === 'dark');
|
||||
return darkMode ? 'dark' : 'light';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user