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

refactor: playing quiz with SSE

parent 7ad7904d
Branches
1 merge request!136Feature/138 refacto plaing quiz sse
Pipeline #325379 passed with stages
in 18 seconds
......@@ -13,6 +13,7 @@ import WhiteButton from "../../../components/buttons/WhiteButton";
import ModalInvitePlayer from "../../../components/Multiplayer/ModalInvitePlayer";
import EventSource from "react-native-sse";
import {CustomEventType} from "../../../models/CustomEventType";
import {Question} from "../../../models/Question";
interface Props {
navigation: NavigationProp<any>;
route: RouteProp<RoutePropsType, "Lobby">;
......@@ -43,7 +44,7 @@ export default function Lobby({navigation, route}: Props) {
const [showModal, setShowModal] = useState<boolean>(false);
const [esUseState, setEsUseState] = useState<EventSource<CustomEventType>>();
const {createParty, generateRun, startParty, nextQuestion} = useMultiService();
const {createParty, generateRun, startParty} = useMultiService();
const userInvite = { id: 0, username: 'Invite', email: 'invite@email.com'}
let goodId = roomId;
......@@ -74,9 +75,10 @@ export default function Lobby({navigation, route}: Props) {
setRunId(responseGenerate);
});
es.addEventListener("gameStarted", async () => {
es.addEventListener("gameStarted", () => {
console.log("Game started event data:");
navigation.navigate("PlayingQuizMultiMode", {runId: runId, socket: es, roomId: roomId});
console.log("ES envoyé : ", es);
navigation.navigate("PlayingQuizMultiMode", {runId: runId, es: es, roomId: roomId, isHost: true});
});
es.addEventListener("userJoined", (event) => {
......
......@@ -38,6 +38,7 @@ interface Props {
export default function PlayingQuizMultiMode({route, navigation}:Props) {
const {runId, es, roomId, isHost} = route.params;
const {getQuizInformations, getRunsInfo} = useQuizService();
const [quizState, setQuizState] = useState(QuizState.ANSWERING);
const [quizInformations, setQuizInformations] = useState<QuizInformations | undefined>(undefined);
......@@ -46,15 +47,20 @@ export default function PlayingQuizMultiMode({route, navigation}:Props) {
const [score, setScore] = useState(0);
const {nextQuestion} = useMultiService();
useEffect(() => {
console.log("es changed", es);
}, [es]);
const initES = async () => {
es.addEventListener("nextQuestion", async (event) => {
if (!event.data) return;
const question: Question = JSON.parse(event.data);
setActualQuestion(question);
setQuizState(QuizState.ANSWERING);
});
const initES = () => {
setTimeout(()=>{
es.addEventListener("nextQuestion", (event) => {
console.log("nextQuestion event data:");
if (!event.data) return;
const question: Question = JSON.parse(event.data);
setActualQuestion(question);
setQuizState(QuizState.ANSWERING);
});
},2000)
}
const fetchRuns = async () => {
if (runId === undefined) return;
......
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