Skip to content

Commit 2425607

Browse files
committed
feat: adds number array min validation
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
1 parent 4e6f7aa commit 2425607

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

src/components/settings/ToolheadSettings.vue

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@
8383
:rules="[
8484
$rules.lengthGreaterThanOrEqual(1),
8585
$rules.lengthLessThanOrEqual(6),
86-
$rules.numberArrayValid
86+
$rules.numberArrayValid,
87+
$rules.numberArrayGreaterThan(0)
8788
]"
8889
/>
8990
</app-setting>
@@ -127,7 +128,8 @@
127128
:rules="[
128129
$rules.lengthGreaterThanOrEqual(1),
129130
$rules.lengthLessThanOrEqual(3),
130-
$rules.numberArrayValid
131+
$rules.numberArrayValid,
132+
$rules.numberArrayGreaterThan(0)
131133
]"
132134
/>
133135
</app-setting>
@@ -150,7 +152,8 @@
150152
:rules="[
151153
$rules.lengthGreaterThanOrEqual(1),
152154
$rules.lengthLessThanOrEqual(3),
153-
$rules.numberArrayValid
155+
$rules.numberArrayValid,
156+
$rules.numberArrayGreaterThan(0)
154157
]"
155158
/>
156159
</app-setting>
@@ -175,7 +178,8 @@
175178
:rules="[
176179
$rules.lengthGreaterThanOrEqual(4),
177180
$rules.lengthLessThanOrEqual(4),
178-
$rules.numberArrayValid
181+
$rules.numberArrayValid,
182+
$rules.numberArrayGreaterThan(0)
179183
]"
180184
/>
181185
</app-setting>
@@ -198,7 +202,8 @@
198202
:rules="[
199203
$rules.lengthGreaterThanOrEqual(4),
200204
$rules.lengthLessThanOrEqual(4),
201-
$rules.numberArrayValid
205+
$rules.numberArrayValid,
206+
$rules.numberArrayGreaterThan(0)
202207
]"
203208
/>
204209
</app-setting>
@@ -272,7 +277,8 @@
272277
:rules="[
273278
$rules.lengthGreaterThanOrEqual(1),
274279
$rules.lengthLessThanOrEqual(4),
275-
$rules.numberArrayValid
280+
$rules.numberArrayValid,
281+
$rules.numberArrayGreaterThan(0)
276282
]"
277283
/>
278284
</app-setting>

src/plugins/filters.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export const Rules = {
8181
},
8282

8383
numberValid (v: unknown) {
84-
return isNullOrEmpty(v) || !Number.isNaN(+(v ?? NaN)) || i18n.t('app.general.simple_form.error.invalid_number')
84+
return isNullOrEmpty(v) || Number.isFinite(+v) || i18n.t('app.general.simple_form.error.invalid_number')
8585
},
8686

8787
numberGreaterThan (min: number) {
@@ -133,7 +133,11 @@ export const Rules = {
133133
},
134134

135135
numberArrayValid (v: NullableOrEmpty<unknown[]>) {
136-
return isNullOrEmpty(v) || !v.some(i => i === '' || Number.isNaN(+(i ?? NaN))) || i18n.t('app.general.simple_form.error.arrayofnums')
136+
return isNullOrEmpty(v) || v.every(i => !isNullOrEmpty(i) && Number.isFinite(+i)) || i18n.t('app.general.simple_form.error.arrayofnums')
137+
},
138+
139+
numberArrayGreaterThan (min: number) {
140+
return (v: NullableOrEmpty<number[]>) => isNullOrEmpty(v) || v.every(i => !isNullOrEmpty(i) && i > min) || i18n.t('app.general.simple_form.error.min', { min: `> ${min}` })
137141
},
138142

139143
passwordNotEqualUsername (username?: string | null) {

0 commit comments

Comments
 (0)