Skip to content
Snippets Groups Projects
Commit a102bc9f authored by GOEPP THOMAS's avatar GOEPP THOMAS
Browse files

:twisted_rightwards_arrows: merge fix: stable version of mobile

Merge branch 'feature/130-fix-for-stable-version' into 'develop'
parents fb608c34 046b6d4d
Branches
2 merge requests!132V4.0,!125fix: stable version of mobile
Pipeline #323732 passed with stages
in 14 seconds
import React from "react";
import { FlatList, View, Text, StyleSheet, Image } from "react-native";
import UserModel from "../../../models/UserModel";
import {User} from "../../../models/User";
interface Props {
users: UserModel[];
users: User[];
maxScore: number;
}
export default function EndQuizListPlayer({ users, maxScore }: Props) {
const renderUser = ({ item, index }: { item: UserModel; index: number }) => (
const renderUser = ({ item, index }: { item: User; index: number }) => (
<View style={[styles.userContainer, index === 0 && styles.firstPlace]}>
<Image
source={require("../../../assets/ProfilBaseImage.png")} // Replace with actual profile picture if available
......
import UserModel from "../../../models/UserModel";
import { View, Text, StyleSheet, Image } from "react-native";
import {User} from "../../../models/User";
interface Props {
user: UserModel;
user: User;
score: number;
maxScore: number;
isFirst: boolean;
......
......@@ -61,7 +61,7 @@ export default function QuizList({ quizList, isLoadingData, nextPage, onQuizPres
<FlatList
data={quizList}
renderItem={renderQuizItem}
keyExtractor={(item) => item.id}
keyExtractor={(item,index) => item.id+ ""+ index}
showsVerticalScrollIndicator={true}
contentContainerStyle={styles.listContent}
onEndReached={() => {
......
import {Question} from "./Question";
export interface QuizCommunityResponse {
quizzes: Quiz[];
total: number;
}
export interface Difficulty {
id: number;
name: string;
......
......@@ -10,28 +10,7 @@ interface Props {
}
export default function Home({navigation}: Props) {
const debugQuiz: Quiz = {
id: "debug-quiz-001",
name: "Debug Quiz",
description: "This is a basic quiz for debugging purposes.",
score: 0,
questionIndex: 0,
questionCount: 0,
categoryId: 1,
difficultyId: 1,
authorId: 1,
category: {
id: 1,
name: "General Knowledge",
},
difficulty: {
id: 1,
name: "Easy",
},
questions: [], // Tableau de questions vide
};
navigation.navigate("EndQuizMulti", {quiz: debugQuiz});
return (
<View style={styles.containerGlobal}>
<TemplateMenu navigation={navigation} headerNavigation={false} buttonGoBack={false}>
......
......@@ -5,7 +5,6 @@ import {Quiz} from "../../../models/Quiz";
import {useQuizService} from "../../../services/QuizService";
import HttpError from "../../../services/HttpError";
import UserScore from "../../../components/PlayingQuiz/EndQuiz/UserScore";
import UserModel from "../../../models/UserModel";
import EndQuizListPlayer from "../../../components/PlayingQuiz/EndQuiz/EndQuizListPlayer";
......@@ -17,38 +16,11 @@ interface Props {
export default function EndQuizMultiChild({ navigation, quiz }: Props) {
const {restartQuiz, remainingQuiz} = useQuizService()
const handleRestartPress = async () => {
const isRestarted = await restartQuiz(quiz.id);
if(HttpError.isHttpError(isRestarted)){
console.log(isRestarted.message);
return
}
if(!isRestarted) {
return;
}
const quizRestarted = await remainingQuiz(quiz.id);
if(HttpError.isHttpError(quizRestarted)){
console.log(quizRestarted.message);
return
}
navigation.reset({
index: 0,
routes: [
{
name: "PlayingQuiz",
params: {quizRecovered: quizRestarted},
},
]
});
};
const userTest = {id: 1, email: "user1@email.com", username: "user1", stats: undefined};
const handleBackToMenu = () => {
navigation.navigate('TabNavigator');
};
const user = new UserModel(10,"Thomassss", "Thomas");
return (
<View style={styles.container}>
......@@ -61,13 +33,13 @@ export default function EndQuizMultiChild({ navigation, quiz }: Props) {
style={styles.stars}
/>
<View style={styles.usersContainer}>
<UserScore user={user} score={10} maxScore={quiz.questionCount} isFirst={false}/>
<UserScore user={user} score={10} maxScore={quiz.questionCount} isFirst={true}/>
<UserScore user={user} score={10} maxScore={quiz.questionCount} isFirst={false}/>
<UserScore user={userTest} score={10} maxScore={quiz.questionCount} isFirst={false}/>
<UserScore user={userTest} score={10} maxScore={quiz.questionCount} isFirst={true}/>
<UserScore user={userTest} score={10} maxScore={quiz.questionCount} isFirst={false}/>
</View>
<EndQuizListPlayer users={[new UserModel(1, "user1", "user1@email.com"), new UserModel(2, "user2", "user2@email.com")]} maxScore={quiz.questionCount}/>
<EndQuizListPlayer users={[userTest, userTest]} maxScore={quiz.questionCount}/>
<DefaultButton text="RESTART" handleButtonPressed={handleRestartPress} buttonStyle={styles.whiteButton} buttonText={styles.whiteButtonText}></DefaultButton>
{/*<DefaultButton text="RESTART" handleButtonPressed={handleRestartPress} buttonStyle={styles.whiteButton} buttonText={styles.whiteButtonText}></DefaultButton>*/}
<DefaultButton text="BACK TO MENU" handleButtonPressed={handleBackToMenu} buttonStyle={styles.blueButton} buttonText={styles.blueButtonText}></DefaultButton>
</View>
</View>
......
import HttpError from "./HttpError";
import {Quiz} from "../models/Quiz";
import {Quiz, QuizCommunityResponse} from "../models/Quiz";
import axios from "axios";
import {Answer} from "../models/Answer";
import {Question} from "../models/Question";
......@@ -214,11 +214,11 @@ export const useQuizService = () => {
const getCommunityQuiz = async (skip: number, take: number) => {
try {
const response = await axios.get<Quiz[]>(`${url}/quiz/paginated?skip=${skip}&take=${take}`, {
const response = await axios.get<QuizCommunityResponse>(`${url}/quiz/paginated?skip=${skip}&take=${take}`, {
withCredentials: true, // Inclut les cookies pour une session authentifiée
});
return response.data;
return response.data.quizzes;
} catch (error: any) {
if (error.response) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment