<script lang="ts"> import Input from '$lib/components/Input/Input.svelte'; import { env } from '$env/dynamic/public'; import Select from '$lib/components/Input/Select.svelte'; import { errorMessage } from '$lib/stores'; import { createEventDispatcher } from 'svelte'; const dispatch = createEventDispatcher(); let firstname: string; let lastname: string; let birthday: string; let phone: string; let username: string; let playertype = 'java'; async function newUser() { const response = await fetch(`${env.PUBLIC_BASE_PATH}/admin/users`, { method: 'PUT', body: JSON.stringify({ firstname: firstname, lastname: lastname, birthday: birthday, telephone: phone, username: username, playertype: playertype }) }); if (response.ok) { dispatch('submit', { firstname: firstname, lastname: lastname, birthday: birthday, telephone: phone, username: username, playertype: playertype }); globalCloseForm.submit(); } else { $errorMessage = (await response.json()).message; } } let globalCloseForm: HTMLFormElement; let reportForm: HTMLFormElement; let confirmDialog: HTMLDialogElement; </script> <form method="dialog" class="modal-box" bind:this={reportForm}> <button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2" on:click|preventDefault={() => globalCloseForm.submit()}>✕</button > <h3 class="font-roboto text-xl">Neuer Spieler</h3> <div class="grid grid-cols-2 gap-4"> <Input type="text" required bind:value={firstname}> <span slot="label">Vorname</span> </Input> <Input type="text" required bind:value={lastname}> <span slot="label">Nachname</span> </Input> <Input type="date" required bind:value={birthday}> <span slot="label">Geburtstag</span> </Input> <Input type="tel" bind:value={phone}> <span slot="label">Telefonnummer</span> </Input> <Input type="text" required bind:value={username}> <span slot="label">Minecraft-Spielername</span> </Input> <Select required label="Edition" bind:value={playertype}> <option value="java">Java Edition</option> <option value="bedrock">Bedrock Edition</option> </Select> </div> <div class="flex flex-row space-x-2 mt-6"> <Input type="submit" value="Hinzufügen" on:click={(e) => { if (reportForm.checkValidity()) { e.detail.preventDefault(); confirmDialog.show(); } }} /> <Input type="submit" value="Abbrechen" on:click={(e) => { e.detail.preventDefault(); globalCloseForm.submit(); }} /> </div> </form> <form method="dialog" class="modal-backdrop bg-[rgba(0,0,0,.3)]" bind:this={globalCloseForm}> <button>close</button> </form> <dialog class="modal" bind:this={confirmDialog}> <form method="dialog" class="modal-box"> <button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button> <h3 class="font-roboto text-xl mb-2">Spieler hinzufügen?</h3> <div class="flex flex-row space-x-2 mt-6"> <Input type="submit" value="Hinzufügen" on:click={newUser} /> <Input type="submit" value="Abbrechen" /> </div> </form> <form method="dialog" class="modal-backdrop bg-[rgba(0,0,0,.3)]"> <button>close</button> </form> </dialog>