Add error messages in landing page for duplicate user names and missing game code

landing-page-layout
MiguelMLorente 2025-02-10 22:14:13 +01:00
parent e7ea4269d7
commit 00f22aee28
2 changed files with 13 additions and 5 deletions

View File

@ -8,4 +8,6 @@ export enum ErrorCode {
GAME_NOT_FOUND = "game-not-found", GAME_NOT_FOUND = "game-not-found",
MISSING_USER_NAME = "missing-player-name", MISSING_USER_NAME = "missing-player-name",
INVALID_USER_NAME = "invalid-player-name", INVALID_USER_NAME = "invalid-player-name",
DUPLICATE_USER_NAME = "duplicate-player-name",
MISSING_GAME_CODE = "missing-game-code",
} }

View File

@ -7,7 +7,7 @@ import {
handleJoinLobby, handleJoinLobby,
JoinLobbyEvent, JoinLobbyEvent,
} from "interface"; } from "interface";
import { ChangeEvent, useState } from "react"; import { ChangeEvent, useEffect, useState } from "react";
import { Socket } from "socket.io-client"; import { Socket } from "socket.io-client";
import "./LandingPage.scss"; import "./LandingPage.scss";
@ -34,20 +34,26 @@ const LandingPage = (props: LandingPageProps) => {
ErrorCode.INVALID_USER_NAME, ErrorCode.INVALID_USER_NAME,
"Player name must be letters or spaces only and up to 25 characters", "Player name must be letters or spaces only and up to 25 characters",
], ],
[ErrorCode.DUPLICATE_USER_NAME, "Player name is already under use"],
]); ]);
const userNameErrorMessage = const userNameErrorMessage =
userNameErrorCodesToMessageMap.get(receivedError); userNameErrorCodesToMessageMap.get(receivedError);
const gameCodeErrorCodesToMessageMap = new Map([ const gameCodeErrorCodesToMessageMap = new Map([
[ErrorCode.GAME_NOT_FOUND, "No game found with such lobby ID"], [ErrorCode.GAME_NOT_FOUND, "No game found with such lobby ID"],
[ErrorCode.MISSING_GAME_CODE, "Introduce a game code"],
]); ]);
const gameCodeErrorMessage = const gameCodeErrorMessage =
gameCodeErrorCodesToMessageMap.get(receivedError); gameCodeErrorCodesToMessageMap.get(receivedError);
useEffect(() =>
attachHandlerToCreateLobbyError(socket, (event) => attachHandlerToCreateLobbyError(socket, (event) =>
setReceivedError(event.error), setReceivedError(event.error),
),
); );
useEffect(() =>
attachHandlerToJoinLobbyError(socket, (event) => attachHandlerToJoinLobbyError(socket, (event) =>
setReceivedError(event.error), setReceivedError(event.error),
),
); );
return ( return (