30 lines
755 B
TypeScript
30 lines
755 B
TypeScript
import { Appearance, ColorSchemeName } from 'react-native';
|
|
|
|
import { StatusBarStyle } from './StatusBar.types';
|
|
|
|
function getColorScheme() {
|
|
if (Appearance) {
|
|
return Appearance.getColorScheme();
|
|
} else {
|
|
return 'light';
|
|
}
|
|
}
|
|
|
|
export default function styleToBarStyle(
|
|
style: StatusBarStyle = 'auto',
|
|
colorScheme: ColorSchemeName = getColorScheme()
|
|
): 'light-content' | 'dark-content' {
|
|
if (!colorScheme) {
|
|
colorScheme = 'light';
|
|
}
|
|
|
|
let resolvedStyle = style;
|
|
if (style === 'auto') {
|
|
resolvedStyle = colorScheme === 'light' ? 'dark' : 'light';
|
|
} else if (style === 'inverted') {
|
|
resolvedStyle = colorScheme === 'light' ? 'light' : 'dark';
|
|
}
|
|
|
|
return resolvedStyle === 'light' ? 'light-content' : 'dark-content';
|
|
}
|