Feat last event & disabled send back (for now) #15

Merged
glazk0 merged 1 commit from dev into main 2024-03-28 21:53:09 +01:00
4 changed files with 34 additions and 37 deletions

View file

@ -11,7 +11,7 @@ export const load = (async ({ fetch, cookies, locals: { user } }) => {
const session = cookies.get('session'); const session = cookies.get('session');
let res = await fetch(`${API_URL}/chapters`, { const res = await fetch(`${API_URL}/chapters`, {
headers: { headers: {
Authorization: `Bearer ${session}` Authorization: `Bearer ${session}`
} }
@ -25,38 +25,10 @@ export const load = (async ({ fetch, cookies, locals: { user } }) => {
const chapters: Chapter[] = await res.json(); const chapters: Chapter[] = await res.json();
const lastChapter = chapters.filter((chapter) => chapter.show).pop(); const lastChapter = chapters.filter((chapter) => chapter.start && chapter.end).pop();
if (!lastChapter) {
return {
daily: null
};
}
res = await fetch(`${API_URL}/chapter/${lastChapter.id}`, {
headers: {
Authorization: `Bearer ${session}`
}
});
if (!res.ok) {
return {
daily: {
chapter: lastChapter,
puzzle: null
}
};
}
const chapter = (await res.json()) as Chapter;
const lastPuzzle = chapter.puzzles.filter((puzzle) => puzzle.show).pop();
return { return {
title: 'Dashboard', title: 'Dashboard',
daily: { event: lastChapter,
chapter: lastChapter,
puzzle: lastPuzzle
}
}; };
}) satisfies PageServerLoad; }) satisfies PageServerLoad;

View file

@ -22,7 +22,32 @@
<Card title="Badges obtenus" data={user?.badges?.length ?? 'Aucun'} /> <Card title="Badges obtenus" data={user?.badges?.length ?? 'Aucun'} />
<Card title="Rang actuel" data={user?.rank ?? 'Non classé'} /> <Card title="Rang actuel" data={user?.rank ?? 'Non classé'} />
</div> </div>
{#if data.daily && data.daily.puzzle} {#if data.event}
<header>
<h1 class="text-lg font-semibold">Événement en cours ou à venir</h1>
<p class="text-muted-foreground">
Partipiez à l&apos;événement en équipe en résolvant des puzzles
</p>
</header>
<div
class="flex items-center justify-between gap-4 rounded border border-primary bg-card px-4 py-2"
>
<div class="flex w-full flex-col justify-between md:flex-row md:items-center md:gap-4">
<span class="text-lg font-semibold">{data.event.name}</span>
{#if data.event.start && data.event.end}
<span class="text-muted-foreground">
{new Date(data.event.start).toLocaleDateString()} - {new Date(
data.event.end
).toLocaleDateString()}
</span>
{:else}
<span class="text-muted-foreground">Aucune date</span>
{/if}
</div>
<Button href="/chapters/{data.event.id}">Participer</Button>
</div>
{/if}
<!-- {#if data.daily && data.daily.puzzle}
<header> <header>
<h1 class="text-lg font-semibold">Puzzle du jour</h1> <h1 class="text-lg font-semibold">Puzzle du jour</h1>
<p class="text-muted-foreground"> <p class="text-muted-foreground">
@ -42,7 +67,7 @@
{data.daily.puzzle.score ? 'Voir' : 'Jouer'} {data.daily.puzzle.score ? 'Voir' : 'Jouer'}
</Button> </Button>
</div> </div>
{/if} {/if} -->
<div class="grid grid-cols-1 gap-4"> <div class="grid grid-cols-1 gap-4">
<div class="flex flex-col gap-4"> <div class="flex flex-col gap-4">
<header> <header>

View file

@ -41,8 +41,8 @@ export const actions = {
if (res.ok) { if (res.ok) {
return { return {
form success: true
} };
} }
if (res.status === 400) { if (res.status === 400) {

View file

@ -163,9 +163,9 @@
Continuer Continuer
</Form.Button> </Form.Button>
<Button variant="link" formaction="?/register" on:click={() => toast('Code renvoyé')}> <!-- <Button variant="link" formaction="?/register" on:click={() => toast('Code renvoyé')}>
Renvoyer le code Renvoyer le code
</Button> </Button> -->
</form> </form>
{:else} {:else}
<h1 class="mx-auto text-xl font-bold">Inscription</h1> <h1 class="mx-auto text-xl font-bold">Inscription</h1>