File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change 18
18
19
19
let error: string ;
20
20
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
+
21
34
const handleInvalid = (event : Event & { currentTarget: EventTarget & HTMLInputElement }) => {
22
35
event .preventDefault ();
23
36
39
52
error = event .currentTarget .validationMessage ;
40
53
};
41
54
42
- $ : if (value ) {
55
+ $ : if (value !== null && value !== undefined && ! Number . isNaN ( value ) ) {
43
56
error = null ;
44
57
}
45
58
</script >
61
74
helper ={error || helper }
62
75
state ={error ? ' error' : ' default' }
63
76
on:invalid ={handleInvalid }
64
- on:input >
77
+ on:input ={coerceToNumber }
78
+ on:change ={coerceToNumber }>
65
79
<svelte:fragment slot =" info" >
66
80
<slot name =" info" slot =" info" />
67
81
</svelte:fragment >
You can’t perform that action at this time.
0 commit comments