MCPcopy Create free account
hub / github.com/freeCodeCamp/freeCodeCamp / initializeThemeSaga

Function initializeThemeSaga

client/src/redux/theme-saga.js:16–38  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

14}
15
16export function* initializeThemeSaga() {
17 // Wait for the fetch userComplete action
18 yield take(actionTypes.fetchUserComplete);
19
20 const userTheme = yield select(userThemeSelector);
21 const localStorageTheme = localStorage.getItem('theme');
22 const isSysThemeDark = window.matchMedia(
23 '(prefers-color-scheme: dark)'
24 ).matches;
25
26 let selectTheme = 'light';
27
28 if (localStorageTheme !== null) {
29 selectTheme = localStorageTheme === 'dark' ? 'dark' : 'light';
30 } else if (userTheme) {
31 selectTheme = userTheme === 'night' ? 'dark' : 'light';
32 } else if (isSysThemeDark) {
33 selectTheme = 'dark';
34 }
35
36 localStorage.setItem('theme', selectTheme);
37 yield put(setTheme(selectTheme));
38}
39
40export function createThemeSaga(types) {
41 return [

Callers

nothing calls this directly

Calls 2

putFunction · 0.85
setThemeFunction · 0.85

Tested by

no test coverage detected