You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
import { Workout } from "@/model/Workout";
|
|
import { AntDesign, MaterialCommunityIcons } from "@expo/vector-icons";
|
|
import { useRouter } from "expo-router";
|
|
import React from "react";
|
|
import Text from "@/components/ui/Text"
|
|
import {ImageBackground, TouchableOpacity, View} from "react-native";
|
|
import {useWorkoutStore} from "@/store/workoutStore";
|
|
import {getState} from "jest-circus";
|
|
|
|
interface WorkoutCardComponentProps {
|
|
exercise?: Workout;
|
|
background?: String;
|
|
height?: number;
|
|
}
|
|
|
|
export default function WorkoutCardComponent({exercise}: WorkoutCardComponentProps) {
|
|
|
|
const router = useRouter();
|
|
return (
|
|
<View className="h-full rounded-2xl overflow-hidden bg-black">
|
|
<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?.name} kcal
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
</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?.nbRepetitions}
|
|
</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?.name}
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
<TouchableOpacity
|
|
className="absolute bottom-2 right-4 p-4 rounded-full"
|
|
onPress={() => {
|
|
if (exercise) {
|
|
useWorkoutStore.getState().setWorkout(exercise);
|
|
}
|
|
router.push('/WorkoutDetailScreen');
|
|
}}
|
|
>
|
|
<AntDesign name="play" size={50} color="orange" />
|
|
</TouchableOpacity>
|
|
</ImageBackground>
|
|
</View>
|
|
);
|
|
}
|