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'}
+