mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
fix:coerce numeric values, and handle nullable correctly
This commit is contained in:
@@ -18,6 +18,18 @@
|
||||
|
||||
let error: string;
|
||||
|
||||
function coerceToNumber(event: Event & { currentTarget: EventTarget & HTMLInputElement }) {
|
||||
const raw = event.currentTarget?.value ?? '';
|
||||
|
||||
if (raw === '') {
|
||||
value = nullable ? null : (undefined as unknown as number);
|
||||
return;
|
||||
}
|
||||
|
||||
const parsed = step === 'any' ? Number.parseFloat(raw) : Number.parseInt(raw, 10);
|
||||
value = Number.isNaN(parsed) ? null : parsed;
|
||||
}
|
||||
|
||||
const handleInvalid = (event: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
|
||||
event.preventDefault();
|
||||
|
||||
@@ -39,7 +51,7 @@
|
||||
error = event.currentTarget.validationMessage;
|
||||
};
|
||||
|
||||
$: if (value) {
|
||||
$: if (value !== null && value !== undefined && !Number.isNaN(value)) {
|
||||
error = null;
|
||||
}
|
||||
</script>
|
||||
@@ -61,7 +73,8 @@
|
||||
helper={error || helper}
|
||||
state={error ? 'error' : 'default'}
|
||||
on:invalid={handleInvalid}
|
||||
on:input>
|
||||
on:input={coerceToNumber}
|
||||
on:change={coerceToNumber}>
|
||||
<svelte:fragment slot="info">
|
||||
<slot name="info" slot="info" />
|
||||
</svelte:fragment>
|
||||
|
||||
Reference in New Issue
Block a user