diff --git a/src/app/admin/users/SidebarActions.svelte b/src/app/admin/users/SidebarActions.svelte index 18fd468..e66cfdd 100644 --- a/src/app/admin/users/SidebarActions.svelte +++ b/src/app/admin/users/SidebarActions.svelte @@ -46,8 +46,14 @@ ], [ { key: 'username', type: 'text', label: 'Spielername', options: { required: true } }, - { key: 'uuid', type: 'text', label: 'UUID', default: null } - ] + { + key: 'edition', + type: 'select', + label: 'Edition', + options: { values: { java: 'Java', bedrock: 'Bedrock' }, required: true } + } + ], + [{ key: 'uuid', type: 'text', label: 'UUID', default: null, options: { dynamicWidth: true } }] ]} onSubmit={addUser} bind:open={createPopupOpen} diff --git a/src/app/admin/users/Users.svelte b/src/app/admin/users/Users.svelte index 60ca586..37d7e06 100644 --- a/src/app/admin/users/Users.svelte +++ b/src/app/admin/users/Users.svelte @@ -23,6 +23,10 @@ } +{#snippet edition(value: 'java' | 'bedrock')} + {value.charAt(0).toUpperCase() + value.slice(1)} +{/snippet} + (editPopupUser = user)} diff --git a/src/components/admin/popup/CrudPopup.svelte b/src/components/admin/popup/CrudPopup.svelte index 3233fd1..a2fc14e 100644 --- a/src/components/admin/popup/CrudPopup.svelte +++ b/src/components/admin/popup/CrudPopup.svelte @@ -7,6 +7,7 @@ import UserSearch from '@components/admin/search/UserSearch.svelte'; import Checkbox from '@components/input/Checkbox.svelte'; import type { user } from '@db/schema/user.ts'; + import Select from '@components/input/Select.svelte'; // html bindings let modal: HTMLDialogElement; @@ -44,6 +45,7 @@ | 'datetime-local' | 'number' | 'password' + | 'select' | 'tel' | 'text' | 'textarea' @@ -56,6 +58,7 @@ ['datetime-local']: string; ['number']: number; ['password']: string; + ['select']: string; ['tel']: string; ['text']: string; ['textarea']: string; @@ -71,6 +74,9 @@ ['datetime-local']: {}; ['number']: {}; ['password']: {}; + ['select']: { + options: Record; + }; ['tel']: {}; ['text']: {}; ['textarea']: { @@ -203,6 +209,14 @@ label={k.label} required={k.options?.required} /> + {:else if k.type === 'select'} +