parent
f507c9061f
commit
bf070e09bf
@ -0,0 +1,43 @@
|
||||
import { FC, ReactNode } from "react"
|
||||
import { Pressable, Image, ImageStyle, Text, View, Alert, ImageSourcePropType, TextStyle } from "react-native"
|
||||
import React from "react"
|
||||
import { Skin } from "../core/skin"
|
||||
import { trace } from "console"
|
||||
|
||||
export const ElementAffichage :
|
||||
FC<{element: any, styleImage: ImageStyle, styleTitle : TextStyle,nav: any}> =
|
||||
({element, styleImage, styleTitle, nav}) =>
|
||||
{
|
||||
if (element instanceof Skin)
|
||||
{
|
||||
return(
|
||||
<View>
|
||||
<Pressable onPress={() => Alert.alert("Achat du skin")}>
|
||||
<Image
|
||||
style={styleImage}
|
||||
source={element.getSkinSource()}
|
||||
/>
|
||||
<Text style={styleTitle}>{element.getSkinName()}</Text>
|
||||
</Pressable>
|
||||
</View>
|
||||
)
|
||||
}
|
||||
return(
|
||||
<View>
|
||||
<Text>Type invalide pour ce composant</Text>
|
||||
</View>
|
||||
)
|
||||
/*else if(element.type()==Game)
|
||||
{
|
||||
return (
|
||||
<View>
|
||||
<Pressable onPress={() => Alert.alert("Lancement du jeu")}>
|
||||
<Image
|
||||
style={style}
|
||||
source={element.getImageSource()}
|
||||
/>
|
||||
</Pressable>
|
||||
</View>
|
||||
)
|
||||
}*/
|
||||
}
|
@ -0,0 +1,163 @@
|
||||
import { StatusBar } from 'expo-status-bar'
|
||||
import { StyleSheet, View, Text, Alert, Pressable, Image} from 'react-native'
|
||||
import React from 'react';
|
||||
import { Skin } from '../core/skin';
|
||||
import { TopBar } from '../components/TopBar';
|
||||
import { BotBar } from '../components/BotBar';
|
||||
import { ElementAffichage } from '../components/Element';
|
||||
|
||||
const avatar = require('../../assets/Icons/BobClassic.png');
|
||||
const skinTest= new Skin("Bob",require('../../assets/Icons/BobClassic.png'));
|
||||
const engrenage = require('../../assets/Icons/UnSelected/Cogs.png');
|
||||
const gamepad = require('../../assets/Icons/Selected/SGamepad.png');
|
||||
const message = require('../../assets/Icons/UnSelected/Chat.png');
|
||||
const store = require('../../assets/Icons/UnSelected/Store.png');
|
||||
|
||||
function GameChoice(props: { navigation: any; }) {
|
||||
const { navigation } = props
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<TopBar
|
||||
skin={skinTest}
|
||||
styleAvatar={styles.avatar}
|
||||
title="JOUONS !"
|
||||
rightIcon={engrenage}
|
||||
styleIcon={styles.engrenage}
|
||||
nav={navigation} styleTitle={styles.titre} styleHeader={styles.header}
|
||||
/>
|
||||
<View style={styles.body}>
|
||||
<ElementAffichage
|
||||
element={skinTest}
|
||||
styleImage={styles.imageSkin}
|
||||
styleTitle={styles.nomSkin}
|
||||
nav={navigation}
|
||||
/>
|
||||
</View>
|
||||
<BotBar
|
||||
messages={message}
|
||||
games={gamepad}
|
||||
shop={store}
|
||||
style={styles.iconFooter}
|
||||
styleStore={styles.iconStore}
|
||||
nav={navigation}
|
||||
styleBar={styles.footer}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function Button(props: { onPress: any; title?: any | undefined; }) {
|
||||
const { onPress, title = 'Save' } = props;
|
||||
return (
|
||||
<Pressable style={styles.button} onPress={onPress}>
|
||||
<Text style={styles.text}>{title}</Text>
|
||||
</Pressable>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
body: {
|
||||
flex: 1,
|
||||
flexDirection: 'column',
|
||||
alignItems: 'flex-start',
|
||||
width: '70%',
|
||||
},
|
||||
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: "#45444E",
|
||||
flexDirection: "column",
|
||||
justifyContent: "flex-start",
|
||||
alignItems: "center",
|
||||
},
|
||||
button: {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
height: '30%',
|
||||
width: '100%',
|
||||
marginTop: '10%',
|
||||
paddingVertical: 12,
|
||||
paddingHorizontal: 32,
|
||||
borderRadius: 10,
|
||||
elevation: 3,
|
||||
backgroundColor: '#0085FF',
|
||||
},
|
||||
text: {
|
||||
fontSize: 16,
|
||||
lineHeight: 21,
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
header: {
|
||||
flex : 0.15,
|
||||
width: '100%',
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-around',
|
||||
},
|
||||
titre: {
|
||||
flex: 0.7,
|
||||
flexDirection: 'column',
|
||||
textAlign: 'center',
|
||||
fontSize: 30,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
engrenage: {
|
||||
borderRadius: 50,
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
avatar: {
|
||||
borderRadius: 50,
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
|
||||
footer: {
|
||||
flex: 0.15,
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#2D2C33',
|
||||
flexWrap: 'wrap',
|
||||
width: '100%',
|
||||
justifyContent: 'space-evenly',
|
||||
},
|
||||
iconFooter: {
|
||||
marginBottom: 25,
|
||||
marginTop: 10,
|
||||
width: 65,
|
||||
height: 50,
|
||||
},
|
||||
iconStore: {
|
||||
marginBottom: 25,
|
||||
marginTop: 10,
|
||||
marginLeft: 7,
|
||||
marginRight: 8,
|
||||
width: 50,
|
||||
height: 50,
|
||||
},
|
||||
imageSkin : {
|
||||
borderRadius: 15,
|
||||
marginTop: 15,
|
||||
marginRight: 15,
|
||||
width: 100,
|
||||
height: 100,
|
||||
},
|
||||
nomSkin :{
|
||||
textAlign: 'center',
|
||||
fontSize: 15,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: 'bold',
|
||||
letterSpacing: 0.25,
|
||||
color: 'white',
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
export default GameChoice
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue