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/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>
);
}