-
-
{t('account_settings')}
-
-
+ {ssoError ? (
+
+ {t('sso_link_error')}: {t(ssoError)}
+
+ ) : null}
+
+
+
{t('account_settings')}
+
+
diff --git a/services/web/frontend/js/shared/hooks/use-wait-for-i18n.ts b/services/web/frontend/js/shared/hooks/use-wait-for-i18n.ts
new file mode 100644
index 0000000000..60f1144509
--- /dev/null
+++ b/services/web/frontend/js/shared/hooks/use-wait-for-i18n.ts
@@ -0,0 +1,20 @@
+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)
+
+ useEffect(() => {
+ i18n.then(() => {
+ setIsLocaleDataLoaded(true)
+ })
+ }, [])
+
+ return {
+ isReady: isHookReady && isLocaleDataLoaded,
+ }
+}
+
+export default useWaitForI18n
diff --git a/services/web/test/frontend/features/settings/components/root.test.tsx b/services/web/test/frontend/features/settings/components/root.test.tsx
index 6cc5a2b8c0..826fea8107 100644
--- a/services/web/test/frontend/features/settings/components/root.test.tsx
+++ b/services/web/test/frontend/features/settings/components/root.test.tsx
@@ -1,5 +1,5 @@
import sinon from 'sinon'
-import { screen, render } from '@testing-library/react'
+import { screen, render, waitFor } from '@testing-library/react'
import * as eventTracking from '../../../../../frontend/js/infrastructure/event-tracking'
import SettingsPageRoot from '../../../../../frontend/js/features/settings/components/root'
@@ -34,6 +34,10 @@ describe('
', function () {
it('displays page', async function () {
render(
)
+ await waitFor(() => {
+ screen.getByText('Account Settings')
+ })
+
screen.getByRole('button', {
name: 'Delete your account',
})