Added better redirection
This commit is contained in:
parent
a496751f8c
commit
19fd4af14f
5 changed files with 32 additions and 15 deletions
|
@ -4,14 +4,14 @@
|
||||||
import Boring from 'svelte-boring-avatars';
|
import Boring from 'svelte-boring-avatars';
|
||||||
|
|
||||||
import Award from 'lucide-svelte/icons/award';
|
import Award from 'lucide-svelte/icons/award';
|
||||||
|
import Code from 'lucide-svelte/icons/code';
|
||||||
import Github from 'lucide-svelte/icons/github';
|
import Github from 'lucide-svelte/icons/github';
|
||||||
import LifeBuoy from 'lucide-svelte/icons/life-buoy';
|
import LifeBuoy from 'lucide-svelte/icons/life-buoy';
|
||||||
import LogOut from 'lucide-svelte/icons/log-out';
|
import LogOut from 'lucide-svelte/icons/log-out';
|
||||||
import Settings from 'lucide-svelte/icons/settings';
|
import RectangleEllipsis from 'lucide-svelte/icons/rectangle-ellipsis';
|
||||||
import Users from 'lucide-svelte/icons/users';
|
|
||||||
import Shield from 'lucide-svelte/icons/shield';
|
|
||||||
import ScrollText from 'lucide-svelte/icons/scroll-text';
|
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 * as Avatar from '$lib/components/ui/avatar';
|
||||||
import { Button } from '$lib/components/ui/button';
|
import { Button } from '$lib/components/ui/button';
|
||||||
|
@ -61,6 +61,10 @@
|
||||||
</DropdownMenu.Sub>
|
</DropdownMenu.Sub>
|
||||||
{/if}
|
{/if}
|
||||||
<DropdownMenu.Separator />
|
<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">
|
<DropdownMenu.Item href="/settings">
|
||||||
<Settings class="mr-2 h-4 w-4" />
|
<Settings class="mr-2 h-4 w-4" />
|
||||||
<span>Paramètres</span>
|
<span>Paramètres</span>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<nav class="w-full border-b border-muted p-4">
|
<nav class="w-full border-b border-muted p-4">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<Breadcrumb />
|
<Breadcrumb />
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-4">
|
||||||
<NavbarUser />
|
<NavbarUser />
|
||||||
<MobileNav />
|
<MobileNav />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { page } from '$app/stores';
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
|
|
||||||
import Loader from 'lucide-svelte/icons/loader-circle';
|
import Loader from 'lucide-svelte/icons/loader-circle';
|
||||||
|
@ -61,12 +62,18 @@
|
||||||
</form>
|
</form>
|
||||||
<ul class="flex justify-between">
|
<ul class="flex justify-between">
|
||||||
<li>
|
<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
|
S'inscrire
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<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é
|
Mot de passe oublié
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { page } from '$app/stores';
|
||||||
import { fade } from 'svelte/transition';
|
import { fade } from 'svelte/transition';
|
||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
|
|
||||||
|
@ -219,7 +220,9 @@
|
||||||
{/if}
|
{/if}
|
||||||
<ul class="flex justify-between">
|
<ul class="flex justify-between">
|
||||||
<li>
|
<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>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,18 +10,16 @@ import { setError, superValidate } from 'sveltekit-superforms/server';
|
||||||
|
|
||||||
import { requestPasswordResetSchema, resetPasswordSchema } from '$lib/validations/auth';
|
import { requestPasswordResetSchema, resetPasswordSchema } from '$lib/validations/auth';
|
||||||
|
|
||||||
export const load = (async ({ locals: { user } }) => {
|
export const load: PageServerLoad = async () => {
|
||||||
if (user) redirect(302, '/');
|
|
||||||
|
|
||||||
const requestPasswordResetForm = await superValidate(zod(requestPasswordResetSchema));
|
const requestPasswordResetForm = await superValidate(zod(requestPasswordResetSchema));
|
||||||
const resetPasswordForm = await superValidate(zod(resetPasswordSchema));
|
const resetPasswordForm = await superValidate(zod(resetPasswordSchema));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: 'Mot de passe oublié',
|
title: 'Réinitialisation de mot de passe',
|
||||||
requestPasswordResetForm,
|
requestPasswordResetForm,
|
||||||
resetPasswordForm
|
resetPasswordForm
|
||||||
};
|
};
|
||||||
}) satisfies PageServerLoad;
|
}
|
||||||
|
|
||||||
export const actions: Actions = {
|
export const actions: Actions = {
|
||||||
request: async ({ request, fetch }) => {
|
request: async ({ request, fetch }) => {
|
||||||
|
@ -46,7 +44,7 @@ export const actions: Actions = {
|
||||||
form
|
form
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
confirmation: async ({ request, cookies, fetch }) => {
|
confirmation: async ({ request, cookies, fetch, url: { searchParams } }) => {
|
||||||
const form = await superValidate(request, zod(resetPasswordSchema));
|
const form = await superValidate(request, zod(resetPasswordSchema));
|
||||||
|
|
||||||
if (!form.valid) {
|
if (!form.valid) {
|
||||||
|
@ -75,6 +73,11 @@ export const actions: Actions = {
|
||||||
sameSite: 'strict'
|
sameSite: 'strict'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const redirectTo = searchParams.get('redirectTo');
|
||||||
|
|
||||||
|
if (redirectTo)
|
||||||
|
redirect(302, `/${redirectTo.slice(1)}`);
|
||||||
|
|
||||||
redirect(302, '/');
|
redirect(302, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue