Updated player session id syncing
This commit is contained in:
parent
0d8a4ef1b2
commit
c7aac9d2ce
@ -62,32 +62,50 @@ export function PlayerProvider({ session, children }) {
|
|||||||
}, [playerState, database, databaseStatus]);
|
}, [playerState, database, databaseStatus]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setPlayerState((prevState) => ({
|
if (userId) {
|
||||||
|
setPlayerState((prevState) => {
|
||||||
|
if (prevState) {
|
||||||
|
return {
|
||||||
...prevState,
|
...prevState,
|
||||||
userId,
|
userId,
|
||||||
}));
|
};
|
||||||
|
}
|
||||||
|
return prevState;
|
||||||
|
});
|
||||||
|
}
|
||||||
}, [userId, setPlayerState]);
|
}, [userId, setPlayerState]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
function updateSessionId() {
|
||||||
|
setPlayerState((prevState) => {
|
||||||
|
if (prevState) {
|
||||||
|
return {
|
||||||
|
...prevState,
|
||||||
|
sessionId: session.id,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return prevState;
|
||||||
|
});
|
||||||
|
}
|
||||||
function handleSocketConnect() {
|
function handleSocketConnect() {
|
||||||
// Set the player state to trigger a sync
|
// Set the player state to trigger a sync
|
||||||
setPlayerState({ ...playerState, sessionId: session.id });
|
updateSessionId();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSocketStatus(status) {
|
function handleSocketStatus(status) {
|
||||||
if (status === "joined") {
|
if (status === "joined") {
|
||||||
setPlayerState({ ...playerState, sessionId: session.id });
|
updateSessionId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
session.on("status", handleSocketStatus);
|
session.on("status", handleSocketStatus);
|
||||||
session.socket?.on("connect", handleSocketConnect);
|
session.socket?.on("connect", handleSocketConnect);
|
||||||
session.socket?.on("reconnect", handleSocketConnect);
|
session.socket?.io.on("reconnect", handleSocketConnect);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
session.off("status", handleSocketStatus);
|
session.off("status", handleSocketStatus);
|
||||||
session.socket?.off("connect", handleSocketConnect);
|
session.socket?.off("connect", handleSocketConnect);
|
||||||
session.socket?.off("reconnect", handleSocketConnect);
|
session.socket?.io.off("reconnect", handleSocketConnect);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user