overleaf/services/web/frontend/js/shared/hooks/use-wait-for-i18n.ts
Alf Eaton 345f51bedb [ide-react] Improve initial loading behaviour (#15916)
* Defer script loading
* Only mount IdePage once everything has connected

GitOrigin-RevId: 32f16214f26ac6a6d71a9dd332b3c35b8b82deae
2023-11-28 09:04:11 +00:00

26 lines
591 B
TypeScript

import { useEffect, useState } from 'react'
import i18n from '../../../js/i18n'
import { useTranslation } from 'react-i18next'
function useWaitForI18n() {
const { ready: isHookReady } = useTranslation()
const [isLocaleDataLoaded, setIsLocaleDataLoaded] = useState(false)
const [error, setError] = useState<Error>()
useEffect(() => {
i18n
.then(() => {
setIsLocaleDataLoaded(true)
})
.catch(error => {
setError(error)
})
}, [])
return {
isReady: isHookReady && isLocaleDataLoaded,
error,
}
}
export default useWaitForI18n