Merge pull request 'Added better redirection' (#18) from dev into main

Reviewed-on: #18
This commit is contained in:
glazk0 2024-04-02 15:14:17 +02:00
commit 3614fcfbd5
5 changed files with 32 additions and 15 deletions

View file

@ -4,14 +4,14 @@
import Boring from 'svelte-boring-avatars';
import Award from 'lucide-svelte/icons/award';
import Code from 'lucide-svelte/icons/code';
import Github from 'lucide-svelte/icons/github';
import LifeBuoy from 'lucide-svelte/icons/life-buoy';
import LogOut from 'lucide-svelte/icons/log-out';
import Settings from 'lucide-svelte/icons/settings';
import Users from 'lucide-svelte/icons/users';
import Shield from 'lucide-svelte/icons/shield';
import RectangleEllipsis from 'lucide-svelte/icons/rectangle-ellipsis';
import ScrollText from 'lucide-svelte/icons/scroll-text';
import Code from 'lucide-svelte/icons/code';
import Settings from 'lucide-svelte/icons/settings';
import Shield from 'lucide-svelte/icons/shield';
import * as Avatar from '$lib/components/ui/avatar';
import { Button } from '$lib/components/ui/button';
@ -61,6 +61,10 @@
</DropdownMenu.Sub>
{/if}
<DropdownMenu.Separator />
<DropdownMenu.Item href="/reset-password">
<RectangleEllipsis class="mr-2 h-4 w-4" />
<span>Réinitialiser le mot de passe</span>
</DropdownMenu.Item>
<DropdownMenu.Item href="/settings">
<Settings class="mr-2 h-4 w-4" />
<span>Paramètres</span>

View file

@ -7,7 +7,7 @@
<nav class="w-full border-b border-muted p-4">
<div class="flex items-center justify-between">
<Breadcrumb />
<div class="flex items-center gap-2">
<div class="flex items-center gap-4">
<NavbarUser />
<MobileNav />
</div>

View file

@ -1,4 +1,5 @@
<script lang="ts">
import { page } from '$app/stores';
import type { PageData } from './$types';
import Loader from 'lucide-svelte/icons/loader-circle';
@ -9,7 +10,7 @@
import Input from '$lib/components/ui/input/input.svelte';
import { loginSchema } from '$lib/validations/auth';
export let data: PageData;
const form = superForm(data.form, {
@ -61,12 +62,18 @@
</form>
<ul class="flex justify-between">
<li>
<a class="font-medium text-muted-foreground hover:text-primary" href="/register">
<a
class="font-medium text-muted-foreground hover:text-primary"
href="/register{$page.url.search}"
>
S'inscrire
</a>
</li>
<li>
<a class="font-medium text-muted-foreground hover:text-primary" href="/reset-password">
<a
class="font-medium text-muted-foreground hover:text-primary"
href="/reset-password{$page.url.search}"
>
Mot de passe oublié
</a>
</li>

View file

@ -1,4 +1,5 @@
<script lang="ts">
import { page } from '$app/stores';
import { fade } from 'svelte/transition';
import type { PageData } from './$types';
@ -219,7 +220,9 @@
{/if}
<ul class="flex justify-between">
<li>
<a class="text-muted-foreground hover:text-primary" href="/login">Se connecter</a>
<a class="text-muted-foreground hover:text-primary" href="/login{$page.url.search}"
>Se connecter</a
>
</li>
</ul>
</div>

View file

@ -10,18 +10,16 @@ import { setError, superValidate } from 'sveltekit-superforms/server';
import { requestPasswordResetSchema, resetPasswordSchema } from '$lib/validations/auth';
export const load = (async ({ locals: { user } }) => {
if (user) redirect(302, '/');
export const load: PageServerLoad = async () => {
const requestPasswordResetForm = await superValidate(zod(requestPasswordResetSchema));
const resetPasswordForm = await superValidate(zod(resetPasswordSchema));
return {
title: 'Mot de passe oublié',
title: 'Réinitialisation de mot de passe',
requestPasswordResetForm,
resetPasswordForm
};
}) satisfies PageServerLoad;
}
export const actions: Actions = {
request: async ({ request, fetch }) => {
@ -46,7 +44,7 @@ export const actions: Actions = {
form
}
},
confirmation: async ({ request, cookies, fetch }) => {
confirmation: async ({ request, cookies, fetch, url: { searchParams } }) => {
const form = await superValidate(request, zod(resetPasswordSchema));
if (!form.valid) {
@ -75,6 +73,11 @@ export const actions: Actions = {
sameSite: 'strict'
});
const redirectTo = searchParams.get('redirectTo');
if (redirectTo)
redirect(302, `/${redirectTo.slice(1)}`);
redirect(302, '/');
}