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>