add rules read timeout of 30 seconds
All checks were successful
delpoy / build-and-deploy (push) Successful in 42s
All checks were successful
delpoy / build-and-deploy (push) Successful in 42s
This commit is contained in:
parent
47867738f8
commit
9cd78231c3
@ -12,6 +12,7 @@
|
|||||||
export let readonly = false;
|
export let readonly = false;
|
||||||
export let size: 'xs' | 'sm' | 'md' | 'lg' = 'md';
|
export let size: 'xs' | 'sm' | 'md' | 'lg' = 'md';
|
||||||
export let pickyWidth = true;
|
export let pickyWidth = true;
|
||||||
|
export let containerClass = '';
|
||||||
|
|
||||||
export let inputElement: HTMLInputElement | undefined = undefined;
|
export let inputElement: HTMLInputElement | undefined = undefined;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- the cursor-not-allowed class must be set here because a disabled button does not respect the 'cursor' css property -->
|
<!-- the cursor-not-allowed class must be set here because a disabled button does not respect the 'cursor' css property -->
|
||||||
<div class={type === 'submit' && disabled ? 'cursor-not-allowed' : ''}>
|
<div class={containerClass} class:cursor-not-allowed={type === 'submit' && disabled}>
|
||||||
{#if type === 'submit'}
|
{#if type === 'submit'}
|
||||||
<input
|
<input
|
||||||
class="btn"
|
class="btn"
|
||||||
|
@ -1,23 +1,3 @@
|
|||||||
<script>
|
<div class="flex justify-center w-full bg-base-200">
|
||||||
import { env } from '$env/dynamic/public';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="fixed top-0 left-0 h-full w-full bg-[#050505]" />
|
|
||||||
<img
|
|
||||||
class="bg-snipped bg-black fixed top-0 left-0 h-full w-full object-cover pointer-events-none blur-[2px]"
|
|
||||||
src="{env.PUBLIC_BASE_PATH}/img/register-background.webp"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
<div class="flex justify-center w-full">
|
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
|
||||||
.bg-snipped {
|
|
||||||
/* prettier-ignore */
|
|
||||||
clip-path: polygon(
|
|
||||||
0 20%, 100% -35%, 100% -5%, 0 50%,
|
|
||||||
0 110%, 100% 50%, 100% 80%, 0 140%
|
|
||||||
);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<!--the tooltip when not all fields are correctly filled won't completely show if the overflow is hidden-->
|
<!--the tooltip when not all fields are correctly filled won't completely show if the overflow is hidden-->
|
||||||
<div
|
<div
|
||||||
class="grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 my-12 bg-base-100 shadow-[0_0_10px_10px_rgba(0,0,0,0.7)]"
|
class="grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 my-12 bg-base-100 shadow-lg"
|
||||||
class:overflow-hidden={registered}
|
class:overflow-hidden={registered}
|
||||||
>
|
>
|
||||||
{#if !registered}
|
{#if !registered}
|
||||||
|
@ -55,7 +55,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let rulesAccepted = false;
|
let rulesAccepted = false;
|
||||||
let rulesModal: HTMLDialogElement | null = null;
|
let rulesModal: HTMLDialogElement;
|
||||||
|
let rulesModalSecondsOpened = 0;
|
||||||
|
let rulesModalTimer: number | null = null;
|
||||||
|
|
||||||
let inputsInvalidMessage: string | null = 'Bitte fülle alle erforderlichen Felder aus';
|
let inputsInvalidMessage: string | null = 'Bitte fülle alle erforderlichen Felder aus';
|
||||||
let registerRequest: Promise<void> | null = null;
|
let registerRequest: Promise<void> | null = null;
|
||||||
@ -162,6 +164,7 @@
|
|||||||
if (!rulesAccepted) {
|
if (!rulesAccepted) {
|
||||||
e.detail.target.checked = false;
|
e.detail.target.checked = false;
|
||||||
rulesModal.show();
|
rulesModal.show();
|
||||||
|
rulesModalTimer = setInterval(() => rulesModalSecondsOpened++, 1000);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
bind:inputElement={rulesInput}
|
bind:inputElement={rulesInput}
|
||||||
@ -219,7 +222,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<dialog class="modal" bind:this={rulesModal}>
|
<dialog
|
||||||
|
class="modal"
|
||||||
|
on:close={() => {
|
||||||
|
clearInterval(rulesModalTimer);
|
||||||
|
rulesModalTimer = null;
|
||||||
|
}}
|
||||||
|
bind:this={rulesModal}
|
||||||
|
>
|
||||||
<form method="dialog" class="modal-box flex max-w-[95%] md:max-w-[90%] lg:max-w-[75%]">
|
<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>
|
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||||
<div class="overflow-auto">
|
<div class="overflow-auto">
|
||||||
@ -248,15 +258,30 @@
|
|||||||
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600" />
|
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600" />
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div
|
||||||
|
class="relative w-min"
|
||||||
|
title={rulesModalSecondsOpened < 30
|
||||||
|
? `Regeln können in ${Math.max(
|
||||||
|
30 - rulesModalSecondsOpened,
|
||||||
|
0
|
||||||
|
)} Sekunden akzeptiert werden`
|
||||||
|
: ''}
|
||||||
|
>
|
||||||
|
<div class="absolute top-0 left-0 h-full w-full overflow-hidden rounded-lg">
|
||||||
|
<div
|
||||||
|
style="width: {Math.min((rulesModalSecondsOpened / 30) * 100, 100)}%"
|
||||||
|
class="h-full bg-base-300"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<Input
|
<Input
|
||||||
id="rules-accept"
|
id="rules-accept"
|
||||||
type="submit"
|
type="submit"
|
||||||
value="Akzeptieren"
|
value="Akzeptieren"
|
||||||
|
disabled={rulesModalSecondsOpened < 30}
|
||||||
|
containerClass="bg-transparent z-[1] relative"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
rulesAccepted = true;
|
rulesAccepted = true;
|
||||||
rulesInput.checked = true;
|
rulesInput.checked = true;
|
||||||
// doesn't get triggered by `rulesInput.checked = true` so it must be called manually
|
|
||||||
checkInputs();
|
checkInputs();
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user