2022-06-30 06:50:52 +00:00
|
|
|
import {
|
2022-07-15 06:06:33 +00:00
|
|
|
DarkTheme as NavigationDarkTheme,
|
|
|
|
DefaultTheme as NavigationDefaultTheme,
|
2022-07-03 01:50:01 +00:00
|
|
|
NavigationContainer,
|
|
|
|
} from '@react-navigation/native';
|
2022-09-24 01:57:51 +00:00
|
|
|
import React, {useState} from 'react';
|
2022-08-27 01:40:16 +00:00
|
|
|
import {useColorScheme} from 'react-native';
|
2022-07-06 09:03:56 +00:00
|
|
|
import {
|
2022-07-15 06:06:33 +00:00
|
|
|
DarkTheme as PaperDarkTheme,
|
|
|
|
DefaultTheme as PaperDefaultTheme,
|
2022-07-06 09:03:56 +00:00
|
|
|
Provider,
|
|
|
|
} from 'react-native-paper';
|
2022-09-26 23:45:13 +00:00
|
|
|
import Ionicon from 'react-native-vector-icons/MaterialIcons';
|
2022-09-26 23:19:19 +00:00
|
|
|
import {lightColors} from './colors';
|
2022-09-11 03:35:20 +00:00
|
|
|
import MassiveSnack from './MassiveSnack';
|
2022-07-15 04:34:06 +00:00
|
|
|
import Routes from './Routes';
|
2022-07-03 01:50:01 +00:00
|
|
|
|
2022-08-26 01:54:51 +00:00
|
|
|
export const CombinedDefaultTheme = {
|
2022-07-15 06:06:33 +00:00
|
|
|
...NavigationDefaultTheme,
|
2022-09-24 03:59:52 +00:00
|
|
|
...PaperDefaultTheme,
|
2022-07-15 06:06:33 +00:00
|
|
|
colors: {
|
|
|
|
...NavigationDefaultTheme.colors,
|
2022-09-24 03:59:52 +00:00
|
|
|
...PaperDefaultTheme.colors,
|
2022-07-15 06:06:33 +00:00
|
|
|
},
|
|
|
|
};
|
2022-08-26 01:54:51 +00:00
|
|
|
export const CombinedDarkTheme = {
|
2022-07-15 06:06:33 +00:00
|
|
|
...NavigationDarkTheme,
|
2022-09-24 03:59:52 +00:00
|
|
|
...PaperDarkTheme,
|
2022-07-15 06:06:33 +00:00
|
|
|
colors: {
|
|
|
|
...NavigationDarkTheme.colors,
|
2022-09-24 03:59:52 +00:00
|
|
|
...PaperDarkTheme.colors,
|
2022-09-26 23:19:19 +00:00
|
|
|
primary: lightColors[0].hex,
|
|
|
|
background: '#0E0E0E',
|
2022-07-15 06:06:33 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2022-09-24 01:57:51 +00:00
|
|
|
export const CustomTheme = React.createContext({
|
|
|
|
color: '',
|
|
|
|
setColor: (_value: string) => {},
|
|
|
|
});
|
|
|
|
|
2022-07-01 01:42:42 +00:00
|
|
|
const App = () => {
|
|
|
|
const dark = useColorScheme() === 'dark';
|
2022-09-24 01:57:51 +00:00
|
|
|
const [color, setColor] = useState(
|
|
|
|
dark
|
2022-09-26 23:19:19 +00:00
|
|
|
? CombinedDarkTheme.colors.primary.toUpperCase()
|
|
|
|
: CombinedDefaultTheme.colors.primary.toUpperCase(),
|
2022-09-24 01:57:51 +00:00
|
|
|
);
|
|
|
|
const theme = dark
|
|
|
|
? {
|
|
|
|
...CombinedDarkTheme,
|
|
|
|
colors: {...CombinedDarkTheme.colors, primary: color},
|
|
|
|
}
|
|
|
|
: {
|
|
|
|
...CombinedDefaultTheme,
|
|
|
|
colors: {...CombinedDefaultTheme.colors, primary: color},
|
|
|
|
};
|
2022-07-06 09:03:56 +00:00
|
|
|
|
2022-06-30 06:50:52 +00:00
|
|
|
return (
|
2022-09-24 01:57:51 +00:00
|
|
|
<CustomTheme.Provider value={{color, setColor}}>
|
|
|
|
<Provider
|
|
|
|
theme={theme}
|
|
|
|
settings={{icon: props => <Ionicon {...props} />}}>
|
|
|
|
<NavigationContainer theme={theme}>
|
|
|
|
<MassiveSnack>
|
|
|
|
<Routes />
|
|
|
|
</MassiveSnack>
|
|
|
|
</NavigationContainer>
|
|
|
|
</Provider>
|
|
|
|
</CustomTheme.Provider>
|
2022-06-30 06:50:52 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default App;
|