Fix translation files and CallPending page

Remove i18next-parser from pre-push script because it was not
working properly.
Fix some translation entries.
Make some ALL_CAPS entries Sentence case.

GitLab: #149
Change-Id: I9d80933eefade3f04d9a81aa07bbb1b7a4503fe3
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 80d8409..2d47543 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -86,7 +86,7 @@
     'unused-imports/no-unused-imports': 'error',
     'unused-imports/no-unused-vars': [
       'warn',
-      { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' },
+      { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_', ignoreRestSiblings: true },
     ],
   },
 };
diff --git a/.hooks/pre-push b/.hooks/pre-push
index 5b46213..99fc09b 100755
--- a/.hooks/pre-push
+++ b/.hooks/pre-push
@@ -2,21 +2,28 @@
 
 confirm () {
   if ! eval "$@" ; then
-    printf "Found some problems. Do you still want to push? [y/N] "
+    printf "Found some problems in the code. Do you still want to push? [y/N] "
     read -r REPLY
 
     if [ "$REPLY" = "${REPLY#[Yy]}" ]
     then
       echo "Cancelling push..."
       exit 1
+    else
+      return 1
     fi
   else
     echo "OK!"
   fi
 }
 
-echo "Checking for i18next warnings..."
-confirm "npm run extract-translations -w client -- --fail-on-warnings --fail-on-update"
-
-echo "Checking for eslint warnings..."
+echo "Checking for EsLint errors and warnings..."
 confirm "npm run lint --workspaces -- --max-warnings 0"
+
+if [ $? -eq 1 ]; then
+  echo "Checking for EsLint errors..."
+  npm run lint --workspaces -- --quiet
+fi
+
+echo "Checking for Prettier problems..."
+confirm "npm run format:check --workspaces"
diff --git a/client/src/components/CallButtons.tsx b/client/src/components/CallButtons.tsx
index dbaef70..594a1cc 100644
--- a/client/src/components/CallButtons.tsx
+++ b/client/src/components/CallButtons.tsx
@@ -18,7 +18,7 @@
 
 import { styled } from '@mui/material/styles';
 import React, { useContext, useMemo } from 'react';
-import { Trans } from 'react-i18next';
+import { useTranslation } from 'react-i18next';
 
 import { WebRTCContext } from '../contexts/WebRTCProvider';
 import { ExpandableButton, ExpandableButtonProps, ToggleIconButton } from './Button';
@@ -57,6 +57,7 @@
 
 const ColoredCallButton = styled(
   ({
+    buttonColor,
     ...props
   }: ExpandableButtonProps & {
     buttonColor: ColoredCallButtonColor;
@@ -102,25 +103,26 @@
 };
 
 export const CallingScreenShareButton = (props: ExpandableButtonProps) => {
+  const { t } = useTranslation();
   return (
     <CallButton
       aria-label="screen share"
       Icon={ScreenShareArrowIcon}
       expandMenuOptions={[
         {
-          description: <Trans i18nKey="share_screen" />,
+          description: t('share_screen'),
           icon: <ScreenShareRegularIcon />,
         },
         {
-          description: <Trans i18nKey="share_window" />,
+          description: t('share_window'),
           icon: <WindowIcon />,
         },
         {
-          description: <Trans i18nKey="share_screen_area" />,
+          description: t('share_screen_area'),
           icon: <ScreenShareScreenAreaIcon />,
         },
         {
-          description: <Trans i18nKey="share_file" />,
+          description: t('share_file'),
           icon: <FileIcon />,
         },
       ]}
diff --git a/client/src/components/ConversationListItem.tsx b/client/src/components/ConversationListItem.tsx
index 91dd0f1..2f07076 100644
--- a/client/src/components/ConversationListItem.tsx
+++ b/client/src/components/ConversationListItem.tsx
@@ -29,7 +29,7 @@
 import { Conversation } from 'jami-web-common';
 import { QRCodeCanvas } from 'qrcode.react';
 import { MouseEvent, useState } from 'react';
-import { Trans } from 'react-i18next';
+import { useTranslation } from 'react-i18next';
 import Modal from 'react-modal';
 import { useNavigate, useParams } from 'react-router-dom';
 
@@ -95,6 +95,7 @@
   const pathId = conversationId || contactId;
   const isSelected = conversation.getDisplayUri() === pathId;
   const navigate = useNavigate();
+  const { t } = useTranslation();
 
   const [menuAnchorEl, setMenuAnchorEl] = useState<HTMLElement | null>(null);
   const [modalDetailsIsOpen, setModalDetailsIsOpen] = useState(false);
@@ -161,9 +162,7 @@
             <ListItemIcon>
               <MessageIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_message" />
-            </ListItemText>
+            <ListItemText>{t('conversation_message')}</ListItemText>
           </MenuItem>
           <MenuItem
             onClick={() => {
@@ -173,9 +172,7 @@
             <ListItemIcon>
               <AudioCallIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_start_audiocall" />
-            </ListItemText>
+            <ListItemText>{t('conversation_start_audiocall')}</ListItemText>
           </MenuItem>
 
           <MenuItem
@@ -186,9 +183,7 @@
             <ListItemIcon>
               <VideoCallIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_start_videocall" />
-            </ListItemText>
+            <ListItemText>{t('conversation_start_videocall')}</ListItemText>
           </MenuItem>
 
           {isSelected && (
@@ -201,9 +196,7 @@
               <ListItemIcon>
                 <CancelIcon style={{ color: iconColor }} />
               </ListItemIcon>
-              <ListItemText>
-                <Trans i18nKey="conversation_close" />
-              </ListItemText>
+              <ListItemText>{t('conversation_close')}</ListItemText>
             </MenuItem>
           )}
 
@@ -218,9 +211,7 @@
             <ListItemIcon>
               <ContactDetailsIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_details" />
-            </ListItemText>
+            <ListItemText>{t('conversation_details')}</ListItemText>
           </MenuItem>
 
           <MenuItem
@@ -233,9 +224,7 @@
             <ListItemIcon>
               <BlockContactIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_block_contact" />
-            </ListItemText>
+            <ListItemText>{t('conversation_block_contact')}</ListItemText>
           </MenuItem>
 
           <MenuItem
@@ -248,9 +237,7 @@
             <ListItemIcon>
               <RemoveContactIcon style={{ color: iconColor }} />
             </ListItemIcon>
-            <ListItemText>
-              <Trans i18nKey="conversation_delete_contact" />
-            </ListItemText>
+            <ListItemText>{t('conversation_delete_contact')}</ListItemText>
           </MenuItem>
         </Menu>
       </div>
diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx
index 6276fa4..8373601 100644
--- a/client/src/components/Header.tsx
+++ b/client/src/components/Header.tsx
@@ -17,11 +17,13 @@
  */
 import { Box, Button, Menu, MenuItem } from '@mui/material';
 import { MouseEvent, useState } from 'react';
+import { useTranslation } from 'react-i18next';
 import { useNavigate } from 'react-router-dom';
 
 import { useAuthContext } from '../contexts/AuthProvider';
 
 export default function Header() {
+  const { t } = useTranslation();
   const { logout } = useAuthContext();
 
   const navigate = useNavigate();
@@ -39,7 +41,7 @@
       <Menu id="simple-menu" anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose}>
         <MenuItem onClick={goToContacts}>Contacts</MenuItem>
         <MenuItem onClick={() => navigate('/settings')}>Account settings</MenuItem>
-        <MenuItem onClick={logout}>Log out</MenuItem>
+        <MenuItem onClick={logout}>{t('logout')}</MenuItem>
       </Menu>
     </Box>
   );
diff --git a/client/src/components/Input.tsx b/client/src/components/Input.tsx
index 40d55b6..b21b2d2 100644
--- a/client/src/components/Input.tsx
+++ b/client/src/components/Input.tsx
@@ -53,7 +53,7 @@
 export type PasswordStatus = StrengthValueCode | 'registration_failed';
 
 export type InputProps<StatusType extends NameStatus | PasswordStatus> = TextFieldProps & {
-  status: StatusType;
+  status?: StatusType;
   infoButtonProps?: IconButtonProps;
   success?: boolean;
   tooltipTitle: string;
@@ -63,7 +63,7 @@
   infoButtonProps,
   onChange: _onChange,
   success,
-  status,
+  status = 'default',
   tooltipTitle,
   ...props
 }: InputProps<NameStatus>) => {
@@ -142,7 +142,7 @@
   onChange: _onChange,
   success,
   tooltipTitle,
-  status,
+  status = 'default',
   ...props
 }: InputProps<PasswordStatus>) => {
   const { t } = useTranslation();
diff --git a/client/src/locale/en/translation.json b/client/src/locale/en/translation.json
index 9210cdd..8a2ee50 100644
--- a/client/src/locale/en/translation.json
+++ b/client/src/locale/en/translation.json
@@ -16,6 +16,7 @@
   "conversation_title_three": "{{member0}}, {{member1}} and {{member2}}",
   "conversation_title_four": "{{member0}}, {{member1}}, {{member2}}, +1 other member",
   "conversation_title_more": "{{member0}}, {{member1}}, {{member2}}, +{{excess}} other members",
+  "logout": "Log out",
   "username_input_helper_text_success": "Username available",
   "username_input_helper_text_taken": "Username already taken",
   "username_input_helper_text_invalid": "Username doesn't follow required pattern",
@@ -53,35 +54,39 @@
   "message_input_placeholder_two": "Write to {{member0}} and {{member1}}",
   "message_input_placeholder_three": "Write to {{member0}}, {{member1}} and {{member2}}",
   "message_input_placeholder_four": "Write to {{member0}}, {{member1}}, {{member2}}, +1 other member",
-  "message_input_placeholder_more": "Write to {{member01}}, {{member1}}, {{member2}}, +{{excess}} other members",
-  "conversation_add_contact": "",
+  "message_input_placeholder_more": "Write to {{member0}}, {{member1}}, {{member2}}, +{{excess}} other members",
+  "conversation_add_contact": "Add contact",
   "calling": "Calling...",
   "connecting": "Connecting...",
   "incoming_call_{medium}": "",
   "end_call": "End call",
   "login_username_not_found": "Username not found",
   "login_invalid_password": "Incorrect password",
-  "login_form_title": "LOGIN",
+  "login_form_title": "Login",
   "login_form_username_tooltip": "The username you registered with",
   "login_form_password_tooltip": "The password you registered with",
-  "login_form_submit_button": "LOG IN",
+  "login_form_submit_button": "Log in",
   "login_form_to_registration_text": "Need an account?",
-  "login_form_to_registration_link": "REGISTER",
+  "login_form_to_registration_link": "Register",
   "registration_success": "You've successfully registered! — Logging you in...",
-  "registration_form_title": "REGISTRATION",
+  "registration_form_title": "Registration",
   "registration_form_username_tooltip": "Username may be from 3 to 32 chraracters long and contain a-z, A-Z, -, _\n\nClick for more details",
   "registration_form_password_tooltip": "Choose a password hard to guess for others but easy to remember for you, it must be at least 10 characters. Your account won't be recovered if you forget it!\n\nClick for more details",
-  "registration_form_submit_button": "REGISTER",
+  "registration_form_submit_button": "Register",
   "registration_form_to_login_text": "Already have an account?",
-  "registration_form_to_login_link": "LOG IN",
-  "logout": "",
-  "setup_login_title": "",
-  "setup_login_welcome": "",
-  "setup_login_admin_creation": "",
-  "password_placeholder": "",
-  "setup_login_password_placeholder_creation": "",
-  "setup_login_password_placeholder_repeat": "",
-  "admin_creation_submit_button": "",
+  "registration_form_to_login_link": "Log in",
+  "setup_login_title": "Jami web node setup",
+  "setup_login_welcome": "Welcome to the Jami web node setup.",
+  "setup_login_admin_creation": "Let's start by creating a new administrator account to control access to the server configuration.",
+  "password_placeholder": "Password",
+  "setup_login_password_placeholder_creation": "New password",
+  "setup_login_password_placeholder_repeat": "Repeat password",
+  "admin_creation_submit_button": "Create admin account",
   "severity_error": "Error",
-  "severity_success": "Success"
+  "severity_success": "Success",
+  "incoming_call_audio": "Incoming audio call from {{member0}}",
+  "incoming_call_video": "Incoming video call from {{member0}}",
+  "refuse_call": "Refuse",
+  "accept_call_audio": "Accept in audio",
+  "accept_call_video": "Accept in video"
 }
diff --git a/client/src/locale/fr/translation.json b/client/src/locale/fr/translation.json
index b519e9d..272b4f1 100644
--- a/client/src/locale/fr/translation.json
+++ b/client/src/locale/fr/translation.json
@@ -15,7 +15,8 @@
   "conversation_title_two": "{{member0}} et {{member1}}",
   "conversation_title_three": "{{member0}}, {{member1}} et {{member2}}",
   "conversation_title_four": "{{member0}}, {{member1}}, {{member2}}, +1 autre membre",
-  "conversation_title_more": "{{member01}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
+  "conversation_title_more": "{{member0}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
+  "logout": "Se déconnecter",
   "username_input_helper_text_success": "Nom d'utilisateur disponible",
   "username_input_helper_text_taken": "Nom d'utilisateur déjà pris",
   "username_input_helper_text_invalid": "Le nom d'utilisateur ne suit pas le modèle",
@@ -53,35 +54,39 @@
   "message_input_placeholder_two": "Écrire à {{member0}} et {{member1}}",
   "message_input_placeholder_three": "Écrire à {{member0}}, {{member1}} et {{member2}}",
   "message_input_placeholder_four": "Écrire à {{member0}}, {{member1}}, {{member2}}, +1 autre membre",
-  "message_input_placeholder_more": "Écrire à {{member01}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
-  "conversation_add_contact": "",
+  "message_input_placeholder_more": "Écrire à {{member0}}, {{member1}}, {{member2}}, +{{excess}} autres membres",
+  "conversation_add_contact": "Ajouter le contact",
   "calling": "Appel en cours...",
   "connecting": "Connexion en cours...",
   "incoming_call_{medium}": "",
   "end_call": "Fin d'appel",
   "login_username_not_found": "Nom d'utilisateur introuvable",
   "login_invalid_password": "Mot de passe incorrect",
-  "login_form_title": "CONNEXION",
+  "login_form_title": "Connexion",
   "login_form_username_tooltip": "Le nom d'utilisateur avec lequel vous vous êtes inscrit(e)",
   "login_form_password_tooltip": "Le mot de passe avec lequel vous vous êtes inscrit(e)",
-  "login_form_submit_button": "SE CONNECTER",
+  "login_form_submit_button": "Se connecter",
   "login_form_to_registration_text": "Besoin d'un compte?",
-  "login_form_to_registration_link": "S'INSCRIRE",
+  "login_form_to_registration_link": "S'inscrire",
   "registration_success": "Inscription réussie! — Connexion en cours...",
-  "registration_form_title": "INSCRIPTION",
+  "registration_form_title": "Inscription",
   "registration_form_username_tooltip": "Le nom d'utilisateur doit avoir de 3 à 32 caractères et contenir a-z, A-Z, -, _\n\nCliquer pour plus de détails",
   "registration_form_password_tooltip": "Choisissez un mot de passe difficile à deviner pour les autres, mais facile à retenir pour vous, il doit avoir au moins 10 caractères. Votre compte ne sera pas récupéré si vous l'oubliez!\n\nCliquer pour plus de détails",
-  "registration_form_submit_button": "S'INSCRIRE",
+  "registration_form_submit_button": "S'inscrire",
   "registration_form_to_login_text": "Déjà inscrit?",
-  "registration_form_to_login_link": "SE CONNECTER",
-  "logout": "",
-  "setup_login_title": "",
-  "setup_login_welcome": "",
-  "setup_login_admin_creation": "",
-  "password_placeholder": "",
-  "setup_login_password_placeholder_creation": "",
-  "setup_login_password_placeholder_repeat": "",
-  "admin_creation_submit_button": "",
+  "registration_form_to_login_link": "Se connecter",
+  "setup_login_title": "Configuration du noeud web Jami",
+  "setup_login_welcome": "Bienvenue à la configuration du noeud web Jami.",
+  "setup_login_admin_creation": "Commençons par créer un nouveau compte administrateur pour contrôler l'accès à la configuration du serveur.",
+  "password_placeholder": "Mot de passe",
+  "setup_login_password_placeholder_creation": "Nouveau mot de passe",
+  "setup_login_password_placeholder_repeat": "Répéter le mot de passe",
+  "admin_creation_submit_button": "Créer un compte admin",
   "severity_error": "Erreur",
-  "severity_success": "Succès"
+  "severity_success": "Succès",
+  "incoming_call_audio": "Appel audio entrant de {{member0}}",
+  "incoming_call_video": "Appel vidéo entrant de {{member0}}",
+  "refuse_call": "Refuser",
+  "accept_call_audio": "Accepter en audio",
+  "accept_call_video": "Accepter en vidéo"
 }
diff --git a/client/src/pages/AddContactPage.tsx b/client/src/pages/AddContactPage.tsx
index 442b405..5e3c375 100644
--- a/client/src/pages/AddContactPage.tsx
+++ b/client/src/pages/AddContactPage.tsx
@@ -17,7 +17,7 @@
  */
 import GroupAddRounded from '@mui/icons-material/GroupAddRounded';
 import { Box, Card, CardContent, Container, Fab, Typography } from '@mui/material';
-import { Trans } from 'react-i18next';
+import { useTranslation } from 'react-i18next';
 import { useNavigate } from 'react-router-dom';
 
 import { useAuthContext } from '../contexts/AuthProvider';
@@ -29,6 +29,7 @@
 };
 
 export default function AddContactPage({ contactId }: AddContactPageProps) {
+  const { t } = useTranslation();
   const { axiosInstance } = useAuthContext();
   const navigate = useNavigate();
 
@@ -52,7 +53,7 @@
           <Box style={{ textAlign: 'center', marginTop: 16 }}>
             <Fab variant="extended" color="primary" onClick={handleClick}>
               <GroupAddRounded />
-              <Trans key="conversation_add_contact" />
+              {t('conversation_add_contact')}
             </Fab>
           </Box>
         </CardContent>
diff --git a/client/src/pages/CallInterface.tsx b/client/src/pages/CallInterface.tsx
index 3484858..db1e19f 100644
--- a/client/src/pages/CallInterface.tsx
+++ b/client/src/pages/CallInterface.tsx
@@ -248,7 +248,7 @@
             >
               {hiddenButtons.map((SecondaryButton, i) => (
                 <Fragment key={i}>
-                  <SecondaryButton vertical />
+                  <SecondaryButton isVertical />
                 </Fragment>
               ))}
             </Stack>
diff --git a/client/src/pages/CallPending.tsx b/client/src/pages/CallPending.tsx
index 27d28e5..573418a 100644
--- a/client/src/pages/CallPending.tsx
+++ b/client/src/pages/CallPending.tsx
@@ -17,7 +17,7 @@
  */
 
 import { Box, CircularProgress, Grid, Stack, Typography } from '@mui/material';
-import { Trans } from 'react-i18next';
+import { useTranslation } from 'react-i18next';
 
 import {
   CallingAnswerAudioButton,
@@ -114,54 +114,57 @@
 };
 
 export const CallPendingCallerInterface = ({ caller }: CallPendingProps) => {
+  const { t } = useTranslation();
   // TODO: Remove the dummy name
   const defaultName = 'Alex Thérieur';
   return (
-    <Stack textAlign="center" spacing={2}>
+    <>
       <Typography variant="h1" color="white">
         {defaultName}
       </Typography>
       <Typography variant="h3" color="white">
-        {caller === 'calling' ? <Trans i18nKey="calling" /> : <Trans i18nKey="connecting" />}
+        {caller === 'calling' ? t('calling') : t('connecting')}
       </Typography>
-      <CallerButtons />
-    </Stack>
+
+      <Stack alignItems="center" spacing={1} width="100%">
+        <CallingEndButton size="large" />
+        <Typography variant="body2" color="white">
+          {t('end_call')}
+        </Typography>
+      </Stack>
+    </>
   );
 };
 
 export const CallPendingReceiverInterface = ({ medium }: CallPendingProps) => {
+  const { t } = useTranslation();
   // TODO: Remove the dummy name
   const defaultName = 'Alain Thérieur';
   return (
-    <Stack textAlign="center" spacing={2}>
+    <>
       <Typography variant="h1" color="white">
-        <Trans i18nKey="incoming_call" context={medium} values={{ member0: defaultName }} />
+        {t('incoming_call', {
+          context: medium,
+          member0: defaultName,
+        })}
       </Typography>
-      <ReceiverButtons />
-    </Stack>
-  );
-};
-
-const CallerButtons = () => {
-  return (
-    <Stack textAlign="center" spacing={1}>
-      <CallingEndButton size="large" />
-      <Typography variant="body2" color="white">
-        <Trans i18nKey="end_call" />
-      </Typography>
-    </Stack>
+      <Box width="50%">
+        <ReceiverButtons />
+      </Box>
+    </>
   );
 };
 
 const ReceiverButtons = () => {
+  const { t } = useTranslation();
   return (
-    <Grid container direction="row" padding={2}>
+    <Grid container spacing={2}>
       {RECEIVER_BUTTONS.map(({ ButtonComponent, translationKey }, i) => (
         <Grid item xs={4} key={i}>
-          <Stack spacing={1}>
+          <Stack alignItems="center" spacing={1}>
             <ButtonComponent color="inherit" size="large" />
-            <Typography variant="body2" color="white" textAlign="center" sx={{ opacity: 0.75 }}>
-              <Trans i18nKey={'' + translationKey} />
+            <Typography variant="body2" color="white" sx={{ opacity: 0.75 }}>
+              {t(translationKey)}
             </Typography>
           </Stack>
         </Grid>
diff --git a/client/src/pages/JamiLogin.tsx b/client/src/pages/JamiLogin.tsx
index cca4a65..256bb76 100644
--- a/client/src/pages/JamiLogin.tsx
+++ b/client/src/pages/JamiLogin.tsx
@@ -106,7 +106,6 @@
             <UsernameInput
               onChange={handleUsername}
               tooltipTitle={t('login_form_username_tooltip')}
-              status={'default'}
               sx={{ width: theme.typography.pxToRem(inputWidth) }}
             />
           </div>
@@ -114,7 +113,6 @@
             <PasswordInput
               onChange={handlePassword}
               tooltipTitle={t('login_form_password_tooltip')}
-              status={'default'}
               sx={{ width: theme.typography.pxToRem(inputWidth) }}
             />
           </div>
diff --git a/client/src/themes/ThemeDemonstrator.tsx b/client/src/themes/ThemeDemonstrator.tsx
index f45be84..daddbee 100644
--- a/client/src/themes/ThemeDemonstrator.tsx
+++ b/client/src/themes/ThemeDemonstrator.tsx
@@ -70,16 +70,10 @@
           <Switch />
         </Stack>
         <Stack padding="5px" width="300px">
-          <UsernameInput onChange={() => {}} tooltipTitle={'Test'} status={'default'} />
-          <UsernameInput onChange={() => {}} tooltipTitle={'Test'} status={'default'} error defaultValue="Cyrille" />
-          <PasswordInput onChange={() => {}} tooltipTitle={'Test'} status={'default'} />
-          <PasswordInput
-            onChange={() => {}}
-            tooltipTitle={'Test'}
-            status={'default'}
-            error
-            defaultValue="SavoirFaireLinux"
-          />
+          <UsernameInput tooltipTitle={'Test'} />
+          <UsernameInput tooltipTitle={'Test'} error defaultValue="Cyrille" />
+          <PasswordInput tooltipTitle={'Test'} />
+          <PasswordInput tooltipTitle={'Test'} error defaultValue="SavoirFaireLinux" />
           <NickNameInput />
           <RegularInput />
         </Stack>