Skip to content

Commit 03aaa07

Browse files
authored
Merge pull request #2201 from appwrite/fix-SER-243-CountUp-not-working
fix: coerce numeric values, and handle nullable correctly
2 parents af82d7c + bd67a2e commit 03aaa07

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/lib/elements/forms/inputNumber.svelte

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,19 @@
1818
1919
let error: string;
2020
21+
function coerceToNumber(event: Event & { currentTarget: EventTarget & HTMLInputElement }) {
22+
const raw = event.currentTarget?.value ?? '';
23+
if (raw === '') {
24+
value = nullable ? null : (undefined as unknown as number);
25+
return;
26+
}
27+
28+
const parsed = Number(raw);
29+
if (Number.isFinite(parsed)) {
30+
value = parsed;
31+
}
32+
}
33+
2134
const handleInvalid = (event: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
2235
event.preventDefault();
2336
@@ -39,7 +52,7 @@
3952
error = event.currentTarget.validationMessage;
4053
};
4154
42-
$: if (value) {
55+
$: if (value !== null && value !== undefined && !Number.isNaN(value)) {
4356
error = null;
4457
}
4558
</script>
@@ -61,7 +74,8 @@
6174
helper={error || helper}
6275
state={error ? 'error' : 'default'}
6376
on:invalid={handleInvalid}
64-
on:input>
77+
on:input={coerceToNumber}
78+
on:change={coerceToNumber}>
6579
<svelte:fragment slot="info">
6680
<slot name="info" slot="info" />
6781
</svelte:fragment>

0 commit comments

Comments
 (0)