@micha.bigler/ui-core-micha 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -295,10 +295,76 @@ export const authTranslations = {
295
295
  "sw": "Tafadhali ingiza anwani ya barua pepe."
296
296
  },
297
297
  "Auth.PAGE_SIGNUP_SUBTITLE": {
298
- "de": "Geben Sie Ihre E-Mail-Adresse und den Zugangscode ein, um eine Einladung anzufordern.",
299
- "fr": "Saisissez votre adresse e-mail et le code d'accès pour demander une invitation.",
300
- "en": "Enter your email address and access code to request an invitation.",
301
- "sw": "Ingiza barua pepe yako na msimbo wa ufikiaji ili kuomba mwaliko."
298
+ "de": "Wählen Sie eine Registrierungsart und geben Sie die benötigten Angaben ein.",
299
+ "fr": "Choisissez une méthode d'inscription et saisissez les informations requises.",
300
+ "en": "Choose a sign-up method and enter the required details.",
301
+ "sw": "Chagua njia ya kujisajili na uingize taarifa zinazohitajika."
302
+ },
303
+ "Auth.PAGE_SIGNUP_SUBTITLE_ACCESS_CODE": {
304
+ "de": "Geben Sie Ihre E-Mail-Adresse und den erhaltenen Zugangscode ein.",
305
+ "fr": "Saisissez votre adresse e-mail et le code d'accès reçu.",
306
+ "en": "Enter your email address and the access code you received.",
307
+ "sw": "Ingiza anwani yako ya barua pepe na msimbo wa ufikiaji uliopokea."
308
+ },
309
+ "Auth.PAGE_SIGNUP_SUBTITLE_OPEN": {
310
+ "de": "Geben Sie Ihre E-Mail-Adresse ein, um sich direkt zu registrieren.",
311
+ "fr": "Saisissez votre adresse e-mail pour vous inscrire directement.",
312
+ "en": "Enter your email address to sign up directly.",
313
+ "sw": "Ingiza anwani yako ya barua pepe ili kujisajili moja kwa moja."
314
+ },
315
+ "Auth.PAGE_SIGNUP_SUBTITLE_EMAIL_DOMAIN": {
316
+ "de": "Verwenden Sie eine E-Mail-Adresse aus einer freigegebenen Domain.",
317
+ "fr": "Utilisez une adresse e-mail provenant d'un domaine autorisé.",
318
+ "en": "Use an email address from an approved domain.",
319
+ "sw": "Tumia anwani ya barua pepe kutoka kwenye domeni iliyoidhinishwa."
320
+ },
321
+ "Auth.PAGE_SIGNUP_SUBTITLE_QR": {
322
+ "de": "Öffnen Sie diese Seite über einen gültigen QR-Link und geben Sie dann Ihre E-Mail-Adresse ein.",
323
+ "fr": "Ouvrez cette page via un lien QR valide, puis saisissez votre adresse e-mail.",
324
+ "en": "Open this page from a valid QR link, then enter your email address.",
325
+ "sw": "Fungua ukurasa huu kupitia kiungo halali cha QR, kisha ingiza anwani yako ya barua pepe."
326
+ },
327
+ "Auth.PAGE_SIGNUP_SUBTITLE_QR_READY": {
328
+ "de": "Geben Sie Ihre E-Mail-Adresse ein, um die Registrierung mit diesem QR-Link abzuschließen.",
329
+ "fr": "Saisissez votre adresse e-mail pour terminer l'inscription avec ce lien QR.",
330
+ "en": "Enter your email address to complete sign-up with this QR link.",
331
+ "sw": "Ingiza anwani yako ya barua pepe ili kukamilisha kujisajili kwa kutumia kiungo hiki cha QR."
332
+ },
333
+ "Auth.SIGNUP_ACCESS_CODE_TAB": {
334
+ "de": "Mit Zugangscode",
335
+ "fr": "Avec code d'accès",
336
+ "en": "With access code",
337
+ "sw": "Kwa msimbo wa ufikiaji"
338
+ },
339
+ "Auth.SIGNUP_OPEN_TAB": {
340
+ "de": "Direkte Registrierung",
341
+ "fr": "Inscription directe",
342
+ "en": "Direct sign-up",
343
+ "sw": "Kujisajili moja kwa moja"
344
+ },
345
+ "Auth.SIGNUP_EMAIL_DOMAIN_TAB": {
346
+ "de": "Mit E-Mail-Domain",
347
+ "fr": "Avec domaine e-mail",
348
+ "en": "With email domain",
349
+ "sw": "Kwa domeni ya barua pepe"
350
+ },
351
+ "Auth.SIGNUP_QR_TAB": {
352
+ "de": "Mit QR-Link",
353
+ "fr": "Avec lien QR",
354
+ "en": "With QR link",
355
+ "sw": "Kwa kiungo cha QR"
356
+ },
357
+ "Auth.SIGNUP_QR_INVALID": {
358
+ "de": "Dieser QR-Link ist ungültig oder fehlt.",
359
+ "fr": "Ce lien QR est invalide ou manquant.",
360
+ "en": "This QR link is invalid or missing.",
361
+ "sw": "Kiungo hiki cha QR si sahihi au hakipo."
362
+ },
363
+ "Auth.SIGNUP_QR_TOKEN_LABEL": {
364
+ "de": "QR-Token",
365
+ "fr": "Jeton QR",
366
+ "en": "QR token",
367
+ "sw": "Tokeni ya QR"
302
368
  },
303
369
  "Auth.EMAIL_LABEL": {
304
370
  "de": "E-Mail-Adresse",
@@ -13,11 +13,11 @@ const MODE_LABELS = {
13
13
  self_signup_email_domain: 'Auth.SIGNUP_EMAIL_DOMAIN_TAB',
14
14
  self_signup_qr: 'Auth.SIGNUP_QR_TAB',
15
15
  };
16
- const MODE_HINTS = {
17
- self_signup_access_code: 'Auth.SIGNUP_ACCESS_CODE_HINT',
18
- self_signup_open: 'Auth.SIGNUP_OPEN_HINT',
19
- self_signup_email_domain: 'Auth.SIGNUP_EMAIL_DOMAIN_HINT',
20
- self_signup_qr: 'Auth.SIGNUP_QR_HINT',
16
+ const MODE_SUBTITLES = {
17
+ self_signup_access_code: 'Auth.PAGE_SIGNUP_SUBTITLE_ACCESS_CODE',
18
+ self_signup_open: 'Auth.PAGE_SIGNUP_SUBTITLE_OPEN',
19
+ self_signup_email_domain: 'Auth.PAGE_SIGNUP_SUBTITLE_EMAIL_DOMAIN',
20
+ self_signup_qr: 'Auth.PAGE_SIGNUP_SUBTITLE_QR',
21
21
  };
22
22
  export function SignUpPage() {
23
23
  const navigate = useNavigate();
@@ -47,33 +47,15 @@ export function SignUpPage() {
47
47
  const [submitting, setSubmitting] = useState(false);
48
48
  const [successKey, setSuccessKey] = useState(null);
49
49
  const [errorKey, setErrorKey] = useState(null);
50
- const [qrHint, setQrHint] = useState('');
51
- const modeHint = useMemo(() => {
52
- if (mode === 'self_signup_access_code') {
53
- return t(MODE_HINTS[mode], 'Use this option only if you were given an access code for signup.');
50
+ const pageSubtitle = useMemo(() => {
51
+ if (mode === 'self_signup_qr' && tokenFromUrl) {
52
+ return t('Auth.PAGE_SIGNUP_SUBTITLE_QR_READY', 'Enter your email address to complete sign-up with the QR link you opened.');
54
53
  }
55
- if (mode === 'self_signup_open') {
56
- return t(MODE_HINTS[mode], 'Use this option for direct signup without an access code.');
57
- }
58
- if (mode === 'self_signup_email_domain') {
59
- return t(MODE_HINTS[mode], 'Use an email address from an allowed domain for this signup flow.');
60
- }
61
- if (mode === 'self_signup_qr') {
62
- return qrHint || t(MODE_HINTS[mode], 'Use a valid QR signup link to continue.');
63
- }
64
- return '';
65
- }, [mode, qrHint, t]);
54
+ return t(MODE_SUBTITLES[mode] || 'Auth.PAGE_SIGNUP_SUBTITLE', 'Choose a sign-up method and enter the required details.');
55
+ }, [mode, t, tokenFromUrl]);
66
56
  useEffect(() => {
67
57
  setMode(initialMode);
68
58
  }, [initialMode]);
69
- useEffect(() => {
70
- if (!tokenFromUrl || mode !== 'self_signup_qr') {
71
- setQrHint('');
72
- return undefined;
73
- }
74
- setQrHint(t('Auth.SIGNUP_QR_READY', 'QR signup token detected. You can complete your signup now.'));
75
- return undefined;
76
- }, [mode, tokenFromUrl, t]);
77
59
  const handleSubmit = async (event) => {
78
60
  event.preventDefault();
79
61
  setSuccessKey(null);
@@ -110,7 +92,7 @@ export function SignUpPage() {
110
92
  const handleGoToLogin = () => {
111
93
  navigate('/login');
112
94
  };
113
- return (_jsxs(NarrowPage, { title: t('Auth.LOGIN_SIGNUP_BUTTON'), subtitle: t('Auth.PAGE_SIGNUP_SUBTITLE'), children: [_jsx(Helmet, { children: _jsxs("title", { children: [t('App.NAME'), " \u2013 ", t('Auth.LOGIN_SIGNUP_BUTTON')] }) }), successKey && (_jsx(Alert, { severity: "success", sx: { mb: 2 }, children: t(successKey, { email }) })), errorKey && (_jsx(Alert, { severity: "error", sx: { mb: 2 }, children: t(errorKey, t('Auth.INVITE_FAILED', 'Could not complete signup.')) })), signupModes.length > 1 && (_jsxs(Stack, { spacing: 1, sx: { mb: 2 }, children: [_jsx(Alert, { severity: "info", children: t('Auth.SIGNUP_MODE_SELECTOR_HINT', 'Choose the signup option that matches how you want to register.') }), _jsx(Stack, { direction: { xs: 'column', sm: 'row' }, spacing: 1, flexWrap: "wrap", children: signupModes.map((entry) => (_jsx(Button, { variant: mode === entry ? 'contained' : 'outlined', onClick: () => setMode(entry), disabled: submitting, children: t(MODE_LABELS[entry] || entry, entry) }, entry))) })] })), _jsxs(Box, { component: "form", onSubmit: handleSubmit, sx: { display: 'flex', flexDirection: 'column', gap: 2 }, children: [modeHint && _jsx(Alert, { severity: "info", children: modeHint }), _jsx(TextField, { label: t('Auth.EMAIL_LABEL'), type: "email", required: true, fullWidth: true, value: email, onChange: (e) => setEmail(e.target.value), disabled: submitting }), mode === 'self_signup_access_code' && (_jsx(TextField, { label: t('Auth.ACCESS_CODE_LABEL'), type: "text", required: true, fullWidth: true, value: accessCode, onChange: (e) => setAccessCode(e.target.value), disabled: submitting })), mode === 'self_signup_qr' && (_jsx(Stack, { spacing: 1, children: _jsx(TextField, { label: t('Auth.SIGNUP_QR_TOKEN_LABEL', 'QR token'), value: tokenFromUrl, fullWidth: true, InputProps: { readOnly: true } }) })), _jsx(Button, { type: "submit", variant: "contained", disabled: submitting || signupModes.length === 0, children: submitting
95
+ return (_jsxs(NarrowPage, { title: t('Auth.LOGIN_SIGNUP_BUTTON'), subtitle: pageSubtitle, children: [_jsx(Helmet, { children: _jsxs("title", { children: [t('App.NAME'), " \u2013 ", t('Auth.LOGIN_SIGNUP_BUTTON')] }) }), successKey && (_jsx(Alert, { severity: "success", sx: { mb: 2 }, children: t(successKey, { email }) })), errorKey && (_jsx(Alert, { severity: "error", sx: { mb: 2 }, children: t(errorKey, t('Auth.INVITE_FAILED', 'Could not complete signup.')) })), signupModes.length > 1 && (_jsx(Stack, { spacing: 1, sx: { mb: 2 }, children: _jsx(Stack, { spacing: 1, children: signupModes.map((entry) => (_jsx(Button, { variant: mode === entry ? 'contained' : 'outlined', onClick: () => setMode(entry), disabled: submitting, fullWidth: true, children: t(MODE_LABELS[entry] || entry, entry) }, entry))) }) })), _jsxs(Box, { component: "form", onSubmit: handleSubmit, sx: { display: 'flex', flexDirection: 'column', gap: 2 }, children: [_jsx(TextField, { label: t('Auth.EMAIL_LABEL'), type: "email", required: true, fullWidth: true, value: email, onChange: (e) => setEmail(e.target.value), disabled: submitting }), mode === 'self_signup_access_code' && (_jsx(TextField, { label: t('Auth.ACCESS_CODE_LABEL'), type: "text", required: true, fullWidth: true, value: accessCode, onChange: (e) => setAccessCode(e.target.value), disabled: submitting })), mode === 'self_signup_qr' && (_jsx(Stack, { spacing: 1, children: _jsx(TextField, { label: t('Auth.SIGNUP_QR_TOKEN_LABEL', 'QR token'), value: tokenFromUrl, fullWidth: true, InputProps: { readOnly: true } }) })), _jsx(Button, { type: "submit", variant: "contained", disabled: submitting || signupModes.length === 0, children: submitting
114
96
  ? t('Auth.SIGNUP_SUBMITTING')
115
97
  : t('Auth.SIGNUP_SUBMIT') })] }), _jsx(Box, { sx: { mt: 3 }, children: _jsxs(Typography, { variant: "body2", children: [t('Auth.SIGNUP_ALREADY_HAVE_ACCOUNT'), ' ', _jsx(Button, { onClick: handleGoToLogin, variant: "text", size: "small", children: t('Auth.SIGNUP_GO_TO_LOGIN') })] }) })] }));
116
98
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micha.bigler/ui-core-micha",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "private": false,
@@ -333,10 +333,76 @@ export const authTranslations = {
333
333
  "sw": "Tafadhali ingiza anwani ya barua pepe."
334
334
  },
335
335
  "Auth.PAGE_SIGNUP_SUBTITLE": {
336
- "de": "Geben Sie Ihre E-Mail-Adresse und den Zugangscode ein, um eine Einladung anzufordern.",
337
- "fr": "Saisissez votre adresse e-mail et le code d'accès pour demander une invitation.",
338
- "en": "Enter your email address and access code to request an invitation.",
339
- "sw": "Ingiza barua pepe yako na msimbo wa ufikiaji ili kuomba mwaliko."
336
+ "de": "Wählen Sie eine Registrierungsart und geben Sie die benötigten Angaben ein.",
337
+ "fr": "Choisissez une méthode d'inscription et saisissez les informations requises.",
338
+ "en": "Choose a sign-up method and enter the required details.",
339
+ "sw": "Chagua njia ya kujisajili na uingize taarifa zinazohitajika."
340
+ },
341
+ "Auth.PAGE_SIGNUP_SUBTITLE_ACCESS_CODE": {
342
+ "de": "Geben Sie Ihre E-Mail-Adresse und den erhaltenen Zugangscode ein.",
343
+ "fr": "Saisissez votre adresse e-mail et le code d'accès reçu.",
344
+ "en": "Enter your email address and the access code you received.",
345
+ "sw": "Ingiza anwani yako ya barua pepe na msimbo wa ufikiaji uliopokea."
346
+ },
347
+ "Auth.PAGE_SIGNUP_SUBTITLE_OPEN": {
348
+ "de": "Geben Sie Ihre E-Mail-Adresse ein, um sich direkt zu registrieren.",
349
+ "fr": "Saisissez votre adresse e-mail pour vous inscrire directement.",
350
+ "en": "Enter your email address to sign up directly.",
351
+ "sw": "Ingiza anwani yako ya barua pepe ili kujisajili moja kwa moja."
352
+ },
353
+ "Auth.PAGE_SIGNUP_SUBTITLE_EMAIL_DOMAIN": {
354
+ "de": "Verwenden Sie eine E-Mail-Adresse aus einer freigegebenen Domain.",
355
+ "fr": "Utilisez une adresse e-mail provenant d'un domaine autorisé.",
356
+ "en": "Use an email address from an approved domain.",
357
+ "sw": "Tumia anwani ya barua pepe kutoka kwenye domeni iliyoidhinishwa."
358
+ },
359
+ "Auth.PAGE_SIGNUP_SUBTITLE_QR": {
360
+ "de": "Öffnen Sie diese Seite über einen gültigen QR-Link und geben Sie dann Ihre E-Mail-Adresse ein.",
361
+ "fr": "Ouvrez cette page via un lien QR valide, puis saisissez votre adresse e-mail.",
362
+ "en": "Open this page from a valid QR link, then enter your email address.",
363
+ "sw": "Fungua ukurasa huu kupitia kiungo halali cha QR, kisha ingiza anwani yako ya barua pepe."
364
+ },
365
+ "Auth.PAGE_SIGNUP_SUBTITLE_QR_READY": {
366
+ "de": "Geben Sie Ihre E-Mail-Adresse ein, um die Registrierung mit diesem QR-Link abzuschließen.",
367
+ "fr": "Saisissez votre adresse e-mail pour terminer l'inscription avec ce lien QR.",
368
+ "en": "Enter your email address to complete sign-up with this QR link.",
369
+ "sw": "Ingiza anwani yako ya barua pepe ili kukamilisha kujisajili kwa kutumia kiungo hiki cha QR."
370
+ },
371
+ "Auth.SIGNUP_ACCESS_CODE_TAB": {
372
+ "de": "Mit Zugangscode",
373
+ "fr": "Avec code d'accès",
374
+ "en": "With access code",
375
+ "sw": "Kwa msimbo wa ufikiaji"
376
+ },
377
+ "Auth.SIGNUP_OPEN_TAB": {
378
+ "de": "Direkte Registrierung",
379
+ "fr": "Inscription directe",
380
+ "en": "Direct sign-up",
381
+ "sw": "Kujisajili moja kwa moja"
382
+ },
383
+ "Auth.SIGNUP_EMAIL_DOMAIN_TAB": {
384
+ "de": "Mit E-Mail-Domain",
385
+ "fr": "Avec domaine e-mail",
386
+ "en": "With email domain",
387
+ "sw": "Kwa domeni ya barua pepe"
388
+ },
389
+ "Auth.SIGNUP_QR_TAB": {
390
+ "de": "Mit QR-Link",
391
+ "fr": "Avec lien QR",
392
+ "en": "With QR link",
393
+ "sw": "Kwa kiungo cha QR"
394
+ },
395
+ "Auth.SIGNUP_QR_INVALID": {
396
+ "de": "Dieser QR-Link ist ungültig oder fehlt.",
397
+ "fr": "Ce lien QR est invalide ou manquant.",
398
+ "en": "This QR link is invalid or missing.",
399
+ "sw": "Kiungo hiki cha QR si sahihi au hakipo."
400
+ },
401
+ "Auth.SIGNUP_QR_TOKEN_LABEL": {
402
+ "de": "QR-Token",
403
+ "fr": "Jeton QR",
404
+ "en": "QR token",
405
+ "sw": "Tokeni ya QR"
340
406
  },
341
407
 
342
408
  "Auth.EMAIL_LABEL": {
@@ -21,11 +21,11 @@ const MODE_LABELS = {
21
21
  self_signup_qr: 'Auth.SIGNUP_QR_TAB',
22
22
  };
23
23
 
24
- const MODE_HINTS = {
25
- self_signup_access_code: 'Auth.SIGNUP_ACCESS_CODE_HINT',
26
- self_signup_open: 'Auth.SIGNUP_OPEN_HINT',
27
- self_signup_email_domain: 'Auth.SIGNUP_EMAIL_DOMAIN_HINT',
28
- self_signup_qr: 'Auth.SIGNUP_QR_HINT',
24
+ const MODE_SUBTITLES = {
25
+ self_signup_access_code: 'Auth.PAGE_SIGNUP_SUBTITLE_ACCESS_CODE',
26
+ self_signup_open: 'Auth.PAGE_SIGNUP_SUBTITLE_OPEN',
27
+ self_signup_email_domain: 'Auth.PAGE_SIGNUP_SUBTITLE_EMAIL_DOMAIN',
28
+ self_signup_qr: 'Auth.PAGE_SIGNUP_SUBTITLE_QR',
29
29
  };
30
30
 
31
31
  export function SignUpPage() {
@@ -60,46 +60,24 @@ export function SignUpPage() {
60
60
  const [submitting, setSubmitting] = useState(false);
61
61
  const [successKey, setSuccessKey] = useState(null);
62
62
  const [errorKey, setErrorKey] = useState(null);
63
- const [qrHint, setQrHint] = useState('');
64
63
 
65
- const modeHint = useMemo(() => {
66
- if (mode === 'self_signup_access_code') {
64
+ const pageSubtitle = useMemo(() => {
65
+ if (mode === 'self_signup_qr' && tokenFromUrl) {
67
66
  return t(
68
- MODE_HINTS[mode],
69
- 'Use this option only if you were given an access code for signup.',
67
+ 'Auth.PAGE_SIGNUP_SUBTITLE_QR_READY',
68
+ 'Enter your email address to complete sign-up with the QR link you opened.',
70
69
  );
71
70
  }
72
- if (mode === 'self_signup_open') {
73
- return t(
74
- MODE_HINTS[mode],
75
- 'Use this option for direct signup without an access code.',
76
- );
77
- }
78
- if (mode === 'self_signup_email_domain') {
79
- return t(
80
- MODE_HINTS[mode],
81
- 'Use an email address from an allowed domain for this signup flow.',
82
- );
83
- }
84
- if (mode === 'self_signup_qr') {
85
- return qrHint || t(MODE_HINTS[mode], 'Use a valid QR signup link to continue.');
86
- }
87
- return '';
88
- }, [mode, qrHint, t]);
71
+ return t(
72
+ MODE_SUBTITLES[mode] || 'Auth.PAGE_SIGNUP_SUBTITLE',
73
+ 'Choose a sign-up method and enter the required details.',
74
+ );
75
+ }, [mode, t, tokenFromUrl]);
89
76
 
90
77
  useEffect(() => {
91
78
  setMode(initialMode);
92
79
  }, [initialMode]);
93
80
 
94
- useEffect(() => {
95
- if (!tokenFromUrl || mode !== 'self_signup_qr') {
96
- setQrHint('');
97
- return undefined;
98
- }
99
- setQrHint(t('Auth.SIGNUP_QR_READY', 'QR signup token detected. You can complete your signup now.'));
100
- return undefined;
101
- }, [mode, tokenFromUrl, t]);
102
-
103
81
  const handleSubmit = async (event) => {
104
82
  event.preventDefault();
105
83
  setSuccessKey(null);
@@ -143,7 +121,7 @@ export function SignUpPage() {
143
121
  return (
144
122
  <NarrowPage
145
123
  title={t('Auth.LOGIN_SIGNUP_BUTTON')}
146
- subtitle={t('Auth.PAGE_SIGNUP_SUBTITLE')}
124
+ subtitle={pageSubtitle}
147
125
  >
148
126
  <Helmet>
149
127
  <title>
@@ -165,19 +143,14 @@ export function SignUpPage() {
165
143
 
166
144
  {signupModes.length > 1 && (
167
145
  <Stack spacing={1} sx={{ mb: 2 }}>
168
- <Alert severity="info">
169
- {t(
170
- 'Auth.SIGNUP_MODE_SELECTOR_HINT',
171
- 'Choose the signup option that matches how you want to register.',
172
- )}
173
- </Alert>
174
- <Stack direction={{ xs: 'column', sm: 'row' }} spacing={1} flexWrap="wrap">
146
+ <Stack spacing={1}>
175
147
  {signupModes.map((entry) => (
176
148
  <Button
177
149
  key={entry}
178
150
  variant={mode === entry ? 'contained' : 'outlined'}
179
151
  onClick={() => setMode(entry)}
180
152
  disabled={submitting}
153
+ fullWidth
181
154
  >
182
155
  {t(MODE_LABELS[entry] || entry, entry)}
183
156
  </Button>
@@ -191,8 +164,6 @@ export function SignUpPage() {
191
164
  onSubmit={handleSubmit}
192
165
  sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}
193
166
  >
194
- {modeHint && <Alert severity="info">{modeHint}</Alert>}
195
-
196
167
  <TextField
197
168
  label={t('Auth.EMAIL_LABEL')}
198
169
  type="email"