parent
85537fa8a0
commit
eecd1c36cf
@ -1,13 +1,40 @@
|
||||
import {SafeAreaView, Text, View} from "react-native";
|
||||
import {FlatList, Text, View} from "react-native";
|
||||
import React from "react";
|
||||
import HeaderProfileComponent from "@/components/HeaderProfileComponent";
|
||||
import Screen from "@/components/ui/Screen";
|
||||
import WorkoutCardComponent from "@/components/WorkoutCardComponent";
|
||||
import {useSession} from "@/ctx";
|
||||
import {Workout} from "@/model/Workout";
|
||||
|
||||
export default function ExerciceScreen() {
|
||||
const [text, onChangeText] = React.useState("");
|
||||
const exercise = [new Workout("Développé couché", 25,"8 Series Workout", 412, "assets/images/Sigma-2.png","Intense" ),
|
||||
new Workout("Curl halterné", 30, "8 Series Workout", 342, "assets/images/Sigma.jpg","Medium" ),
|
||||
new Workout("Tirage Vertival", 29, "8 Series Workout", 793, "assets/images/Sigma.jpg","Easy" )];
|
||||
|
||||
return (
|
||||
<SafeAreaView>
|
||||
<View>
|
||||
<Text className="m-7 font-extrabold">Welcome to Exercice Screen </Text>
|
||||
<Text>We will do it soon</Text>
|
||||
</View>
|
||||
</SafeAreaView>
|
||||
<Screen>
|
||||
<FlatList
|
||||
ListHeaderComponent={
|
||||
<>
|
||||
<View>
|
||||
<HeaderProfileComponent/>
|
||||
</View>
|
||||
<View className="mt-4">
|
||||
<View className="flex-row justify-between items-center mb-4">
|
||||
<Text className="text-lg font-bold text-black">Séance du jour</Text>
|
||||
</View>
|
||||
</View>
|
||||
</>
|
||||
}
|
||||
data={exercise}
|
||||
className="h-full"
|
||||
renderItem={({ item }: { item: Workout }) =>
|
||||
<View className="mt-2 h-52">
|
||||
<WorkoutCardComponent exercise={item}/>
|
||||
</View>
|
||||
}
|
||||
/>
|
||||
</Screen>
|
||||
);
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 258 KiB |
@ -0,0 +1,28 @@
|
||||
import {Image, Text, TouchableOpacity, View} from "react-native";
|
||||
import {Ionicons} from "@expo/vector-icons";
|
||||
import React from "react";
|
||||
import {useSession} from "@/ctx";
|
||||
|
||||
export default function HeaderProfileComponent() {
|
||||
const {session} = useSession();
|
||||
|
||||
|
||||
return (
|
||||
<View className="rounded-2xl overflow-hidden shadow-lg h-auto p-4">
|
||||
|
||||
<View className="flex-row items-center justify-between">
|
||||
<View className="flex-row items-center w-full">
|
||||
<Image className="h-16 w-16 rounded-2xl"
|
||||
source={require("assets/images/sigma-profile.jpeg")}
|
||||
/>
|
||||
|
||||
<View>
|
||||
<Text className="text-gray-500 font-semibold ml-4">Prêt pour t'entrainer ?</Text>
|
||||
<Text className="text-black text-4xl ml-4 mt-0.5">{session}</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
</View>
|
||||
);
|
||||
}
|
@ -1,51 +1,68 @@
|
||||
import {ImageBackground, SafeAreaView,Text, TouchableOpacity, View} from "react-native";
|
||||
import {ImageBackground, Text, TouchableOpacity, View} from "react-native";
|
||||
import React from "react";
|
||||
import {AntDesign, MaterialCommunityIcons} from "@expo/vector-icons";
|
||||
import {Workout} from "@/model/Workout";
|
||||
|
||||
export default function WorkoutCardComponent() {
|
||||
interface WorkoutCardComponentProps {
|
||||
exercise: Workout,
|
||||
background?: String,
|
||||
height?: number,
|
||||
|
||||
const exercise = new Workout("Développé couché", 25,"8 Series Workout", 412, "assets/images/Sigma-2.jpg","Intense" );
|
||||
}
|
||||
|
||||
export default function WorkoutCardComponent({exercise, height, background}: WorkoutCardComponentProps) {
|
||||
|
||||
|
||||
|
||||
const style = () => {
|
||||
return `rounded-2xl overflow-hidden ${background ?? "bg-black"}`
|
||||
}
|
||||
|
||||
const styleImage = () => {
|
||||
return `w-full h `
|
||||
}
|
||||
|
||||
console.log(styleImage())
|
||||
|
||||
console.log(style())
|
||||
|
||||
return (
|
||||
<View>
|
||||
<View className="rounded-2xl overflow-hidden shadow-lg h-72">
|
||||
|
||||
<ImageBackground
|
||||
source={require("assets/images/Sigma-2.jpg")}
|
||||
className="w-full h-full"
|
||||
>
|
||||
<View className="flex-row justify-between items-center p-4">
|
||||
<View className="flex-row space-x-4">
|
||||
<View className="flex-row items-center">
|
||||
<Text className="text-white text-sm ml-1">{exercise.duration} min</Text>
|
||||
</View>
|
||||
<View className="justify-center ml-0.5">
|
||||
<MaterialCommunityIcons name="square-rounded" size={8}color="white" />
|
||||
</View>
|
||||
<View className="flex-row items-center">
|
||||
<Text className="text-white text-sm ml-1">{exercise.calories} kcal</Text>
|
||||
</View>
|
||||
<View className={style()}>
|
||||
|
||||
|
||||
<ImageBackground
|
||||
source={require("assets/images/Sigma-2.png")}
|
||||
className='h-full w-full'
|
||||
>
|
||||
<View className="flex-row justify-between p-4">
|
||||
<View className="flex-row space-x-4 h-44 items-top justify-center ">
|
||||
<View className="flex-row items-top">
|
||||
<Text className="text-white text-sm ml-1">{exercise.duration} min</Text>
|
||||
</View>
|
||||
<View className="flex-row justify-center">
|
||||
<MaterialCommunityIcons name="square-rounded" size={8} color="white"/>
|
||||
</View>
|
||||
<View className="flex-row">
|
||||
<Text className="text-white text-sm ml-1">{exercise.calories} kcal</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View className="absolute bottom-0 left-0 right-0 p-4 bg-black bg-opacity-50">
|
||||
<Text className="text-white text-lg font-bold">{exercise.name}</Text>
|
||||
<Text className="text-gray-300 text-sm">{exercise.repetitions}</Text>
|
||||
<View className="flex-row items-center mt-2">
|
||||
<Text className="text-white text-xs bg-gray-800 py-1 px-3 rounded-full">
|
||||
Intense
|
||||
</Text>
|
||||
</View>
|
||||
<View className="absolute bottom-0 left-0 right-0 p-4 bg-opacity-50">
|
||||
<Text className="text-white text-lg font-bold">{exercise.name}</Text>
|
||||
<Text className="text-gray-300 text-sm">{exercise.repetitions}</Text>
|
||||
<View className="flex-row items-center mt-2">
|
||||
<Text className="text-white text-xs bg-gray-800 py-1 px-3 rounded-full">
|
||||
{exercise.level}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<TouchableOpacity className="absolute bottom-2 right-4 p-4 rounded-full">
|
||||
<AntDesign name="play" size={50} color="orange"/>
|
||||
</TouchableOpacity>
|
||||
</ImageBackground>
|
||||
|
||||
<TouchableOpacity className="absolute bottom-2 right-4 p-4 rounded-full">
|
||||
<AntDesign name="play" size={50} color="orange" />
|
||||
</TouchableOpacity>
|
||||
</ImageBackground>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
Loading…
Reference in new issue