Merge pull request 'Added better redirection' (#18) from dev into main
Reviewed-on: #18
This commit is contained in:
commit
3614fcfbd5
5 changed files with 32 additions and 15 deletions
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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, '/');
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue