admin/login: auto-focus empty field

Massimo Melina committed Mar 29, 2023 at 16:44 UTC f8e43c656faf79f159907cc3a92abcf698ee5df5
1 file changed +5 -1
admin/src/LoginRequired.ts
+5 -1
@@ -1,7 +1,7 @@
1 // This file is part of HFS - Copyright 2021-2023, Massimo Melina <a@rejetto.com> - License https://www.gnu.org/licenses/gpl-3.0.txt
2
3 import { state, useSnapState } from './state'
4 -import { createElement as h, Fragment, useState } from 'react'
4 +import { createElement as h, Fragment, useEffect, useRef, useState } from 'react'
5 import { Center } from './misc'
6 import { Form } from '@hfs/mui-grid-form'
7 import { apiCall } from './api'
@@ -23,8 +23,12 @@ export function LoginRequired({ children }: any) {
23 function LoginForm() {
24 const [values, setValues] = useState({ username: '', password: '' })
25 const [error, setError] = useState('')
26 + const formRef = useRef<HTMLFormElement>()
27 + const empty = formRef.current?.querySelector('input[value=""]')
28 + useEffect(() => (empty as any)?.focus?.(), [empty])
29 return h(Center, {},
30 h(Form, {
31 + formRef,
32 values,
33 set(v, k) {
34 setValues({ ...values, [k]: v })