skip loading langs if top language is 'en'

Massimo Melina committed Mar 14, 2023 at 10:10 UTC ba0282c75ec4bd978b323155da3e5271d83a57ce
2 files changed +7 -6
frontend/src/api.ts
+6 -5
@@ -43,15 +43,16 @@ export class ApiError extends Error {
43 }
44
45 export function useApi(cmd: string | Falsy, params?: Dict, options: ApiCallOptions={}) : any {
46 - const [x, setX] = useState()
46 + const [ret, setRet] = useState()
47 const loadingRef = useRef<ReturnType<typeof apiCall>>()
48 useEffect(()=>{
49 loadingRef.current?.abort()
50 - setX(undefined)
51 - if (cmd)
52 - (loadingRef.current = apiCall(cmd, params, options)).then(setX, setX)
50 + setRet(undefined)
51 + if (!cmd) return
52 + const p = loadingRef.current = apiCall(cmd, params, options)
53 + p.then(setRet, setRet)
54 }, [cmd, JSON.stringify(params)]) //eslint-disable-line
54 - return x
55 + return ret
56 }
57
58 type EventHandler = (type:string, data?:any) => void
frontend/src/i18n.ts
+1 -1
@@ -25,8 +25,8 @@ export function tComponent(...par: Parameters<typeof t>) {
25
26 export function I18Nprovider({ embedded='en', ...props }) {
27 const langs = urlParams.lang?.split(',') || navigator.languages
28 - let all = useApi('load_lang', { lang: langs }, { noModal: true })
28 state.embedded = embedded
29 + let all = useApi(langs[0] !== 'en' && 'load_lang', { lang: langs }, { noModal: true })
30 useEffect(() => {
31 if (all instanceof Error)
32 all = undefined