fix: admin/login: browser's autofill didn't work well and login button refused to proceed

Massimo Melina committed Mar 16, 2022 at 22:09 UTC 4c8382656a2337e6cdb861723ac0e73c229d76c0
1 file changed +6 -3
admin/src/Form.ts
+6 -3
@@ -171,7 +171,10 @@ export function StringField({ value, onChange, fromField=_.identity, toField=_.i
171 value: state,
172 onChange(ev) {
173 props.onChange?.(ev)
174 - setState(ev.target.value)
174 + const val = ev.target.value
175 + setState(val)
176 + if (document.activeElement !== ev.target) // autofill ongoing, don't wait onBlur event, just go
177 + go(ev, val)
178 },
179 onKeyDown(ev) {
180 props.onKeyDown?.(ev)
@@ -184,10 +187,10 @@ export function StringField({ value, onChange, fromField=_.identity, toField=_.i
187 }
188 })
189
187 - function go(event: any) {
190 + function go(event: any, val: string=state) {
191 let newV
192 try { // catch parsing exceptions
190 - newV = fromField(state.trim())
193 + newV = fromField(val.trim())
194 }
195 catch (e) {
196 return setErr(String(e))