File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed
src/Shared/Providers/ThemeProvider Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,10 @@ export const ThemeProvider = ({ children }: ThemeProviderProps) => {
31
31
const [ showSwitchThemeLocationTippy , setShowSwitchThemeLocationTippy ] = useState < boolean > ( false )
32
32
const [ themeConfig , setThemeConfig ] = useState < ThemeConfigType > ( getThemeConfigFromLocalStorage )
33
33
34
- const handleThemePreferenceChange : ThemeContextType [ 'handleThemePreferenceChange' ] = ( updatedThemePreference ) => {
34
+ const handleThemePreferenceChange : ThemeContextType [ 'handleThemePreferenceChange' ] = (
35
+ updatedThemePreference ,
36
+ isLocalUpdate = false ,
37
+ ) => {
35
38
const updatedThemeConfig : ThemeConfigType = {
36
39
appTheme :
37
40
updatedThemePreference === THEME_PREFERENCE_MAP . auto
@@ -40,8 +43,10 @@ export const ThemeProvider = ({ children }: ThemeProviderProps) => {
40
43
themePreference : updatedThemePreference ,
41
44
}
42
45
setThemeConfig ( updatedThemeConfig )
43
- setThemePreferenceInLocalStorage ( updatedThemePreference )
44
- logThemeToAnalytics ( updatedThemeConfig )
46
+ if ( ! isLocalUpdate ) {
47
+ setThemePreferenceInLocalStorage ( updatedThemePreference )
48
+ logThemeToAnalytics ( updatedThemeConfig )
49
+ }
45
50
}
46
51
47
52
const handleColorSchemeChange = ( ) => {
Original file line number Diff line number Diff line change 17
17
export * from './ThemeProvider'
18
18
export { AppThemeType } from './types'
19
19
export { getComponentSpecificThemeClass , getThemePreferenceText } from './utils'
20
+ export { THEME_PREFERENCE_STORAGE_KEY } from './constants'
Original file line number Diff line number Diff line change @@ -50,7 +50,13 @@ export interface ThemeContextType extends ThemeConfigType {
50
50
handleShowSwitchThemeLocationTippyChange : ( isVisible : boolean ) => void
51
51
showThemeSwitcherDialog : boolean
52
52
handleThemeSwitcherDialogVisibilityChange : ( isVisible : boolean ) => void
53
- handleThemePreferenceChange : ( updatedThemePreference : ThemePreferenceType ) => void
53
+ handleThemePreferenceChange : (
54
+ updatedThemePreference : ThemePreferenceType ,
55
+ /**
56
+ * @description If update is local we won't update local storage and analytics
57
+ * */
58
+ isLocalUpdate ?: boolean ,
59
+ ) => void
54
60
}
55
61
56
62
export interface ThemeProviderProps {
You can’t perform that action at this time.
0 commit comments