Remove patched color scheme code (#2340)
parent
929987f806
commit
c91b9efccb
|
@ -1,9 +1,7 @@
|
||||||
import {isWeb} from 'platform/detection'
|
|
||||||
import React, {ReactNode, createContext, useContext} from 'react'
|
import React, {ReactNode, createContext, useContext} from 'react'
|
||||||
import {
|
import {
|
||||||
AppState,
|
|
||||||
TextStyle,
|
TextStyle,
|
||||||
useColorScheme as useColorScheme_BUGGY,
|
useColorScheme,
|
||||||
ViewStyle,
|
ViewStyle,
|
||||||
ColorSchemeName,
|
ColorSchemeName,
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
|
@ -97,37 +95,11 @@ function getTheme(theme: ColorSchemeName) {
|
||||||
return theme === 'dark' ? darkTheme : defaultTheme
|
return theme === 'dark' ? darkTheme : defaultTheme
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* With RN iOS, we can only "trust" the color scheme reported while the app is
|
|
||||||
* active. This is a workaround until the bug is fixed upstream.
|
|
||||||
*
|
|
||||||
* @see https://github.com/bluesky-social/social-app/pull/1417#issuecomment-1719868504
|
|
||||||
* @see https://github.com/facebook/react-native/pull/39439
|
|
||||||
*/
|
|
||||||
function useColorScheme_FIXED() {
|
|
||||||
const colorScheme = useColorScheme_BUGGY()
|
|
||||||
const [currentColorScheme, setCurrentColorScheme] =
|
|
||||||
React.useState<ColorSchemeName>(colorScheme)
|
|
||||||
|
|
||||||
React.useEffect(() => {
|
|
||||||
// we don't need to be updating state on web
|
|
||||||
if (isWeb) return
|
|
||||||
const subscription = AppState.addEventListener('change', state => {
|
|
||||||
const isActive = state === 'active'
|
|
||||||
if (!isActive) return
|
|
||||||
setCurrentColorScheme(colorScheme)
|
|
||||||
})
|
|
||||||
return () => subscription.remove()
|
|
||||||
}, [colorScheme])
|
|
||||||
|
|
||||||
return isWeb ? colorScheme : currentColorScheme
|
|
||||||
}
|
|
||||||
|
|
||||||
export const ThemeProvider: React.FC<ThemeProviderProps> = ({
|
export const ThemeProvider: React.FC<ThemeProviderProps> = ({
|
||||||
theme,
|
theme,
|
||||||
children,
|
children,
|
||||||
}) => {
|
}) => {
|
||||||
const colorScheme = useColorScheme_FIXED()
|
const colorScheme = useColorScheme()
|
||||||
const themeValue = getTheme(theme === 'system' ? colorScheme : theme)
|
const themeValue = getTheme(theme === 'system' ? colorScheme : theme)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
Loading…
Reference in New Issue