admin: added reload button to some pages in case of error
Massimo Melina committed
Apr 1, 2022 at 19:12 UTC
e5417b4fb11635894de56db5b780defa9c7d03b4
1 file changed
+3
-2
admin/src/api.ts
+3
-2
@@ -1,16 +1,17 @@
1
// This file is part of HFS - Copyright 2021-2022, Massimo Melina <a@rejetto.com> - License https://www.gnu.org/licenses/gpl-3.0.txt
2
3
import { createElement as h, ReactElement, useCallback, useEffect, useMemo, useRef } from 'react'
4
-import { Dict, Falsy, getCookie, spinner, useStateMounted } from './misc'
4
+import { Dict, Falsy, getCookie, IconBtn, spinner, useStateMounted } from './misc'
5
import { Alert } from '@mui/material'
6
import _ from 'lodash'
7
import { state } from './state'
8
+import { Refresh } from '@mui/icons-material'
9
10
export function useApiComp<T=any>(...args: Parameters<typeof useApi>): [T | ReactElement, ()=>void] {
11
const [res, reload] = useApi<T>(...args)
12
return useMemo(() =>
13
res === undefined ? [spinner(), reload]
13
- : res && res instanceof Error ? [h(Alert, { severity: 'error' }, String(res)), reload]
14
+ : res && res instanceof Error ? [ h(Alert, { severity: 'error' }, String(res), h(IconBtn, { icon: Refresh, onClick: reload, sx: { m:'-8px 0 -8px 16px' } })), reload ]
15
: [res, reload],
16
[res, reload])
17
}