show rules popup when accepting them on register
All checks were successful
delpoy / build-and-deploy (push) Successful in 43s
All checks were successful
delpoy / build-and-deploy (push) Successful in 43s
This commit is contained in:
@ -3,6 +3,7 @@
|
||||
import Input from '$lib/components/Input/Input.svelte';
|
||||
import { createEventDispatcher, onMount } from 'svelte';
|
||||
import { env } from '$env/dynamic/public';
|
||||
import { rules } from '$lib/rules';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
@ -53,6 +54,9 @@
|
||||
});
|
||||
}
|
||||
|
||||
let rulesAccepted = false;
|
||||
let rulesModal: HTMLDialogElement | null = null;
|
||||
|
||||
let inputsInvalidMessage: string | null = 'Bitte fülle alle erforderlichen Felder aus';
|
||||
let registerRequest: Promise<void> | null = null;
|
||||
</script>
|
||||
@ -169,11 +173,19 @@
|
||||
name="rules"
|
||||
type="checkbox"
|
||||
required={true}
|
||||
on:input={(e) => {
|
||||
if (!rulesAccepted) {
|
||||
e.detail.target.checked = false;
|
||||
rulesModal.show();
|
||||
}
|
||||
}}
|
||||
bind:inputElement={rulesInput}
|
||||
/>
|
||||
<label for="rules">
|
||||
Ich bin mit den <a class="link" href="{env.PUBLIC_BASE_PATH}/rules">Regeln</a> einverstanden
|
||||
und achte sie
|
||||
Ich bin mit den <a target="_blank" class="link" href="{env.PUBLIC_BASE_PATH}/rules"
|
||||
>Regeln</a
|
||||
>
|
||||
einverstanden und achte sie
|
||||
<span class="text-red-700">*</span>
|
||||
<br />
|
||||
<p class="text-[.75rem]">
|
||||
@ -221,3 +233,50 @@
|
||||
{/key}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<dialog class="modal" bind:this={rulesModal}>
|
||||
<form method="dialog" class="modal-box flex max-w-[95%] md:max-w-[90%] lg:max-w-[75%]">
|
||||
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
<div class="overflow-auto">
|
||||
<div class="mb-4">
|
||||
<div class="collapse collapse-arrow">
|
||||
<input type="checkbox" autocomplete="off" checked />
|
||||
<div class="collapse-title">
|
||||
<p>0. Vorwort</p>
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<p>{rules.header}</p>
|
||||
<p class="mt-1 text-[.75rem]">{rules.footer}</p>
|
||||
</div>
|
||||
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600" />
|
||||
</div>
|
||||
{#each rules.sections as section, i}
|
||||
<div class="collapse collapse-arrow">
|
||||
<input type="checkbox" autocomplete="off" />
|
||||
<div class="collapse-title">
|
||||
<p>{i + 1}. {section.title}</p>
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<p>{section.content}</p>
|
||||
</div>
|
||||
</div>
|
||||
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600" />
|
||||
{/each}
|
||||
</div>
|
||||
<div>
|
||||
<Input
|
||||
id="rules-accept"
|
||||
type="submit"
|
||||
value="Akzeptieren"
|
||||
on:click={() => {
|
||||
rulesAccepted = true;
|
||||
rulesInput.checked = true;
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form method="dialog" class="modal-backdrop bg-[rgba(0,0,0,.3)]">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
|
Reference in New Issue
Block a user