Add AuthProvider to provide account and token

When logged in, the token and account info can be retrieved using
`useAuthContext` hook.
Fix jamid.node path in jamid.ts
Fix some eslint warnings.

Change-Id: I1ea4d537693df807b4ea67a277addfecfc749e4a
diff --git a/client/src/pages/AccountSelection.tsx b/client/src/pages/AccountSelection.tsx
index 708f1eb..f8daf0a 100644
--- a/client/src/pages/AccountSelection.tsx
+++ b/client/src/pages/AccountSelection.tsx
@@ -36,7 +36,7 @@
 const AccountSelection = () => {
   const navigate = useNavigate();
   const [loaded, setLoaded] = useState(false);
-  const [error, setError] = useState(false);
+  const [, setError] = useState(false);
   const [accounts, setAccounts] = useState<Account[]>([]);
 
   authManager.authenticate('admin', 'admin');
diff --git a/client/src/pages/AccountSettings.tsx b/client/src/pages/AccountSettings.tsx
index b09fb65..f7b5e4f 100644
--- a/client/src/pages/AccountSettings.tsx
+++ b/client/src/pages/AccountSettings.tsx
@@ -16,67 +16,16 @@
  * <https://www.gnu.org/licenses/>.
  */
 import { Container } from '@mui/material';
-import { Account, HttpStatusCode } from 'jami-web-common';
-import { useEffect } from 'react';
-import { useNavigate } from 'react-router-dom';
 
 import AccountPreferences from '../components/AccountPreferences';
 import Header from '../components/Header';
-import ProcessingRequest from '../components/ProcessingRequest';
-import { setAccount } from '../redux/appSlice';
-import { useAppDispatch, useAppSelector } from '../redux/hooks';
-import { getAccessToken, setAccessToken } from '../utils/auth';
-import { apiUrl } from '../utils/constants';
 
 export default function AccountSettings() {
-  const dispatch = useAppDispatch();
-  const navigate = useNavigate();
-
-  const { account } = useAppSelector((state) => state.userInfo);
-  const accessToken = getAccessToken();
-
-  useEffect(() => {
-    if (accessToken) {
-      const getAccount = async () => {
-        const url = new URL('/account', apiUrl);
-        let response: Response;
-
-        try {
-          response = await fetch(url, {
-            method: 'GET',
-            mode: 'cors',
-            headers: {
-              Authorization: `Bearer ${accessToken}`,
-            },
-            referrerPolicy: 'no-referrer',
-          });
-        } catch (err) {
-          setAccessToken('');
-          dispatch(setAccount(undefined));
-          navigate('/', { replace: true });
-          return;
-        }
-
-        if (response.status === HttpStatusCode.Ok) {
-          const serializedAccount = await response.json();
-          const account = Account.from(serializedAccount);
-          dispatch(setAccount(account));
-        } else if (response.status === HttpStatusCode.Unauthorized) {
-          setAccessToken('');
-          dispatch(setAccount(undefined));
-          navigate('/', { replace: true });
-        }
-      };
-
-      getAccount();
-    }
-  }, [accessToken, dispatch, navigate]);
-
   // TODO: Improve component and sub-components UI.
   return (
     <Container maxWidth="sm">
       <Header />
-      {account ? <AccountPreferences account={account} /> : <ProcessingRequest open={true} />}
+      <AccountPreferences />
     </Container>
   );
 }
diff --git a/client/src/pages/DeprecatedAccountSettings.tsx b/client/src/pages/DeprecatedAccountSettings.tsx
index 4a37cd9..f69334d 100644
--- a/client/src/pages/DeprecatedAccountSettings.tsx
+++ b/client/src/pages/DeprecatedAccountSettings.tsx
@@ -23,7 +23,7 @@
 import authManager from '../AuthManager';
 import AccountPreferences from '../components/AccountPreferences';
 import Header from '../components/Header';
-import { setAccount, setAccountId } from '../redux/appSlice';
+import { setAccountId } from '../redux/appSlice';
 import { useAppDispatch } from '../redux/hooks';
 
 type AccountSettingsProps = {
@@ -55,7 +55,6 @@
         console.log(result);
         const account = Account.from(result);
         account.setDevices(result.devices);
-        dispatch(setAccount(account));
         setLocalAccount(account);
       })
       .catch((e) => console.log(e));
diff --git a/client/src/pages/Messenger.tsx b/client/src/pages/Messenger.tsx
index 0d13d5a..c38294a 100644
--- a/client/src/pages/Messenger.tsx
+++ b/client/src/pages/Messenger.tsx
@@ -83,7 +83,7 @@
         contact.setRegisteredName(response.name);
         setSearchResults(contact ? Conversation.fromSingleContact(accountId, contact) : undefined);
       })
-      .catch((e) => {
+      .catch(() => {
         setSearchResults(undefined);
       });
     // return () => controller.abort() // crash on React18
diff --git a/client/src/pages/Home.tsx b/client/src/pages/Welcome.tsx
similarity index 95%
rename from client/src/pages/Home.tsx
rename to client/src/pages/Welcome.tsx
index cdebb42..59899ea 100644
--- a/client/src/pages/Home.tsx
+++ b/client/src/pages/Welcome.tsx
@@ -27,7 +27,7 @@
 
 const borderRadius = 30;
 
-export default function Home() {
+export default function Welcome() {
   const theme: Theme = useTheme();
   const [isRegistrationDisplayed, setIsRegistrationDisplayed] = useState<boolean>(false);
 
@@ -90,9 +90,7 @@
                 sx={{ mt: theme.typography.pxToRem(30), mb: theme.typography.pxToRem(20) }}
               />
             )}
-            <Box className="home-child" sx={{ height: `${isMobile ? 'auto' : '100%'}` }}>
-              {child}
-            </Box>
+            <Box sx={{ height: `${isMobile ? 'auto' : '100%'}` }}>{child}</Box>
           </Grid>
         </Grid>
       </Paper>