alpha
Jan Umbach 2022-12-19 18:27:56 +01:00
parent 8a99bd880a
commit 7fd1ce9596
6 changed files with 126 additions and 37 deletions

View File

@ -1,9 +1,21 @@
import React, {useState} from 'react'; import React, {useState} from 'react';
import {NativeBaseProvider, Box, Input, Text} from 'native-base'; import {StyleSheet, Appearance} from 'react-native';
import {StatusBar} from 'native-base'; import {
NativeBaseProvider,
Box,
Input,
Text,
Button,
useColorMode,
useColorModeValue,
StatusBar,
VStack,
Center,
Avatar,
} from 'native-base';
import {NavigationContainer} from '@react-navigation/native'; import {NavigationContainer} from '@react-navigation/native';
import {SafeAreaProvider} from 'react-native-safe-area-context'; import {SafeAreaProvider, SafeAreaView} from 'react-native-safe-area-context';
import {theme} from '@caj/configs/colors'; import {theme} from '@caj/configs/colors';
@ -19,25 +31,99 @@ const user: User = {
id: 0, id: 0,
}; };
function TestContent() {
const {colorMode, toggleColorMode, setColorMode} = useColorMode();
//var bg = useColorModeValue('dark', 'coolGray.800');
const [curTheme, setTheme] = useState(1);
var bg = '#222';
if (curTheme !== 1) bg = curTheme === 0 ? '#000' : '#fff';
console.log(colorMode);
const toggleSwitch = () => {
console.log('switch');
toggleColorMode();
};
return (
<SafeAreaView style={[styles.container, {backgroundColor: bg}]}>
<VStack space={4} alignItems="center">
<Center w="64" h="20" bg="indigo.300" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.500" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.700" rounded="md" shadow={3} />
<Box>
<Text style={{}}>ma boyy :--)))</Text>
</Box>
<Avatar bg="green.500" size="xl" source={imgSrc}>
EM
</Avatar>
<Box>
<Input w="90%" shadow={10} placeholder="Enter your name" />
</Box>
<Button
w="64"
onPress={() => {
let theme = curTheme + 1;
if (theme > 2) theme = 0;
setTheme(theme);
setColorMode(theme === 0 || theme === 1 ? 'dark' : 'light');
}}
h={10}>
Change theme
</Button>
<Center w="64" h="20" bg="indigo.300" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.500" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.700" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.300" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.500" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.700" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.300" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.500" rounded="md" shadow={3} />
<Center w="64" h="20" bg="indigo.700" rounded="md" shadow={3} />
</VStack>
</SafeAreaView>
);
}
const Bar = () => {
const {colorMode, toggleColorMode} = useColorMode();
return (
<StatusBar
barStyle={colorMode === 'dark' ? 'light-content' : 'dark-content'}
backgroundColor="transparent"
translucent={true}
/>
);
};
const App = () => { const App = () => {
useEffect(() => {
// this code will run once
}, [])
return ( return (
<NavigationContainer> <NavigationContainer>
{ <NativeBaseProvider theme={theme}>
<NativeBaseProvider theme={theme}> <Bar />
<StatusBar backgroundColor="transparent" translucent={true} /> <TestContent />
<Box safeArea> </NativeBaseProvider>
<Text style={{fontFamily: 'Outfit-Bold', color: '#f00'}}>
ma boyy :--)))
</Text>
</Box>
<Box alignItems="center">
<Input shadow={2} placeholder="Enter your name" />
</Box>
</NativeBaseProvider>
}
</NavigationContainer> </NavigationContainer>
); );
}; };
const styles = StyleSheet.create({
container: {
height: '100%',
flex: 1,
},
});
/* /*
const styles = StyleSheet.create({ const styles = StyleSheet.create({
baseText: { baseText: {

View File

@ -0,0 +1,5 @@
export function initAppData() {
}

View File

@ -1,11 +1,15 @@
import { extendTheme } from 'native-base'; import { extendTheme } from 'native-base';
export const theme = extendTheme({ export const theme = extendTheme({
config: {
// Changing initialColorMode to 'dark'
initialColorMode: 'dark',
},
fonts: { fonts: {
header: 'Outfit-Bold', header: 'Outfit-Regular',
medium: 'Outfit-Bold', medium: 'Outfit-Regular',
regular: 'Outfit-Bold', regular: 'Outfit-Regular',
semibold: 'Outfit-Bold', semibold: 'Outfit-Regular',
}, },
colors: { colors: {
black: { black: {
@ -41,26 +45,11 @@ export const theme = extendTheme({
}; };
}, },
}, },
Heading: {
baseStyle: ({colorMode}) => {
return {
color: colorMode === 'dark' ? 'black.100' : 'primary.500',
};
},
defaultProps: {
size: 'xl',
fontFamily: 'MontSemibold',
},
},
Text: { Text: {
baseStyle: ({colorMode}) => {
return {
color: colorMode === 'dark' ? 'black.100' : 'black.300',
};
},
defaultProps: { defaultProps: {
size: 'md', size: 'md',
fontFamily: 'MontRegular', fontFamily: 'Outfit-Regular',
colorScheme: 'red',
}, },
sizes: { sizes: {
xl: { xl: {
@ -76,6 +65,15 @@ export const theme = extendTheme({
fontSize: '12px', fontSize: '12px',
}, },
}, },
Button: {
// Can simply pass default props to change default behaviour of components.
baseStyle: {
rounded: 'md',
},
defaultProps: {
colorScheme: 'red',
},
},
}, },
}, },
}); });