diff --git a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte index d02e162d..97eac451 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte @@ -469,10 +469,7 @@ canvas { padding: 10px; } .avatar { - min-height: 5vw; - min-width: 5vw; - - max-width: 5vw; - max-height: 5vw; + height: 5vw; + width: 5vw; } diff --git a/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte b/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte index 17f5245f..157f7cf5 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte @@ -3,8 +3,8 @@ import { onMount, onDestroy } from "svelte"; import { fade, fly } from 'svelte/transition'; - import MatchListElem from "../../pieces/MatchListElem.svelte"; - import type { Match } from "../../pieces/Match"; + import MatchOngoingElem from "../../pieces/MatchOngoingElem.svelte"; + import type { MatchOngoing } from "../../pieces/Match"; import { fetchAvatar } from "../../pieces/utils"; import * as pongSpectator from "./client/pongSpectator"; @@ -22,7 +22,7 @@ //html boolean for pages let hiddenGame = true; - let matchList: Match[] = []; + let matchList: MatchOngoing[] = []; let watchGameStateInterval; const watchGameStateIntervalRate = 142; let timeoutArr = []; @@ -51,7 +51,7 @@ resetPage(); }; - async function initGameSpectator(match: Match) + async function initGameSpectator(match: MatchOngoing) { watchGameStateInterval = setInterval(watchGameState, watchGameStateIntervalRate); pongSpectator.init(match.gameOptions, sound, gameAreaId, match.gameServerIdOfTheMatch); @@ -173,7 +173,7 @@ {#if matchList.length !== 0} {#each matchList as match} - initGameSpectator(match)} /> + initGameSpectator(match)} /> {/each} {:else} @@ -268,10 +268,7 @@ canvas { font-size: 1vw; } .avatar { - min-height: 5vw; - min-width: 5vw; - - max-width: 5vw; - max-height: 5vw; + height: 5vw; + width: 5vw; } diff --git a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplay.svelte b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplay.svelte index f351e1cc..d73a8a65 100644 --- a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplay.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplay.svelte @@ -2,6 +2,7 @@ import { onMount } from 'svelte'; import GenerateUserDisplay from '../../pieces/GenerateUserDisplay.svelte'; + import MatchHistory from '../../pieces/MatchHistory.svelte'; import { push } from 'svelte-spa-router'; import Chat from '../../pieces/chat/Chat.svelte'; @@ -18,9 +19,9 @@
{#if user !== undefined} + - - + {:else}

Sorry

Failed to load current
@@ -30,10 +31,14 @@ diff --git a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplayOneUser.svelte b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplayOneUser.svelte index a87e7663..af84b47b 100644 --- a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplayOneUser.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileDisplayOneUser.svelte @@ -6,6 +6,7 @@ import { onMount } from 'svelte'; import GenerateUserDisplay from '../../pieces/GenerateUserDisplay.svelte'; + import MatchHistory from '../../pieces/MatchHistory.svelte'; import { fetchUser } from "../../pieces/utils"; export let params; @@ -20,7 +21,7 @@
{#if oneUser} - + {:else}

Sorry

Failed to load user {params.username}
diff --git a/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte b/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte index 198d19f0..621a21a9 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/GenerateUserDisplay.svelte @@ -100,7 +100,8 @@ } .avatar{ - max-width: 150px; + width: 15vw; + height: 15vw; } /* The variable rich section */ diff --git a/srcs/requirements/svelte/api_front/src/pieces/Match.ts b/srcs/requirements/svelte/api_front/src/pieces/Match.ts index 68e330f6..d738e425 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/Match.ts +++ b/srcs/requirements/svelte/api_front/src/pieces/Match.ts @@ -2,9 +2,18 @@ import type { MatchOptions } from "../pages/game/client/pongSpectator"; export { MatchOptions } from "../pages/game/client/pongSpectator"; -export class Match { +export class MatchOngoing { gameServerIdOfTheMatch: string; gameOptions: MatchOptions; playerOneUsername: string; playerTwoUsername: string; } + +export class MatchHistory { + id: number; + date: Date; + playerOneUsername: string; + playerTwoUsername: string; + playerOneResult: number; + playerTwoResult: number; +} diff --git a/srcs/requirements/svelte/api_front/src/pieces/MatchHistory.svelte b/srcs/requirements/svelte/api_front/src/pieces/MatchHistory.svelte new file mode 100644 index 00000000..ba32cf9e --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pieces/MatchHistory.svelte @@ -0,0 +1,163 @@ + + + +
+
+
+ + + + + + + + + + + + + + {#each matchList as match, i} + + + {#await fetchAvatar(match.playerOneUsername) then avatar} + + {/await} + + + + {#await fetchAvatar(match.playerTwoUsername) then avatar} + + {/await} + {#if match.playerOneResult === match.playerTwoResult} + + {:else if (user.username === match.playerOneUsername && match.playerOneResult > match.playerTwoResult) + || (user.username === match.playerTwoUsername && match.playerTwoResult > match.playerOneResult)} + + {:else} + + {/if} + + {/each} + +
#Player OneVSPlayer TwoResult
{i + 1} + avatarOne +
+ {match.playerOneUsername} +
{match.playerOneResult}VS{match.playerTwoResult} + avatarOne +
+ {match.playerTwoUsername} +
DRAWWINLOSE
+
+
+ + + diff --git a/srcs/requirements/svelte/api_front/src/pieces/MatchListElem.svelte b/srcs/requirements/svelte/api_front/src/pieces/MatchOngoingElem.svelte similarity index 88% rename from srcs/requirements/svelte/api_front/src/pieces/MatchListElem.svelte rename to srcs/requirements/svelte/api_front/src/pieces/MatchOngoingElem.svelte index 29fbaa52..736d0d0b 100644 --- a/srcs/requirements/svelte/api_front/src/pieces/MatchListElem.svelte +++ b/srcs/requirements/svelte/api_front/src/pieces/MatchOngoingElem.svelte @@ -1,9 +1,9 @@