diff --git a/src/App.jsx b/src/App.jsx
index fd91dbec..d7598f82 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -8,7 +8,7 @@ import {
useLocation,
} from "react-router-dom";
import theme from "./theme";
-import PropTypes from 'prop-types';
+import PropTypes from "prop-types";
import Header from "./components/Header";
import Footer from "./components/Footer";
import Login from "./components/Auth/Login";
@@ -27,8 +27,10 @@ import TermActivity from "./components/term_activity/TermActivity";
import OrganizationsCurieEditor from "./components/CurieEditor/OrganizationCurieEditor";
import { handleOrcidLogin } from "./api/endpoints";
import { GlobalDataContext } from "./contexts/DataContext";
-import { useCookies } from 'react-cookie'
import { API_CONFIG } from "./config";
+import { requestUserSettings } from "./components/Auth/utils";
+import { useCookies } from 'react-cookie';
+
const PageContainer = ({ children }) => {
return (
@@ -39,29 +41,37 @@ const PageContainer = ({ children }) => {
};
function MainContent() {
- const [cookies] = useCookies(['session'])
- const cookiesInfo = JSON.parse(localStorage.getItem(API_CONFIG.SESSION_DATA.COOKIE));
- const { user, setUserData } = useContext(GlobalDataContext);
- // check if cookie is expired
- if (!user) {
- const sessionCookie = cookies.session;
- const expires = new Date(cookiesInfo?.expires);
- const today = new Date();
- if (sessionCookie === cookiesInfo?.value && expires > today) {
- const userData = JSON.parse(localStorage.getItem(API_CONFIG.SESSION_DATA.SETTINGS));
- setUserData({
- name: userData['groupname'],
- id: userData['orcid'],
- email: userData?.emails[0]?.email,
- role: userData['own-role'],
- groupname: userData['groupname'],
- settings: userData
- });
- } else {
- setUserData({});
- }
- }
+ const { setUserData } = useContext(GlobalDataContext);
+ // eslint-disable-next-line no-unused-vars
+ const [existingCookies, setCookie, removeCookie] = useCookies(['session']);
+
+ useEffect(() => {
+ (async () => {
+ const userSettings = JSON.parse(
+ localStorage.getItem(API_CONFIG.SESSION_DATA.SETTINGS)
+ );
+ if (userSettings) {
+ try {
+ const userData = await requestUserSettings(userSettings?.groupname);
+ setUserData({
+ name: userData["groupname"],
+ id: userData["orcid"],
+ email: userData?.emails[0]?.email,
+ role: userData["own-role"],
+ groupname: userData["groupname"],
+ settings: userData,
+ });
+ } catch (error) {
+ console.error("Error fetching user settings:", error);
+ localStorage.removeItem(API_CONFIG.SESSION_DATA.SETTINGS);
+ localStorage.removeItem(API_CONFIG.SESSION_DATA.COOKIE);
+ removeCookie("session", { path: "/" });
+ }
+ }
+ })();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
return (
} />
} />
} />
- } />
- } />
+
+
+
+ }
+ />
+
+
+
+ }
+ />
@@ -149,13 +173,15 @@ const Layout = ({ children }) => {
useEffect(() => {
const params = new URLSearchParams(location.search);
const code = params.get("code");
- if (code) {(async () => {
- try {
- const response = await handleOrcidLogin(code);
- localStorage.setItem("token", response.token);
- } catch (error) {
- console.log("error: ", error)
- }})();
+ if (code) {
+ (async () => {
+ try {
+ const response = await handleOrcidLogin(code);
+ localStorage.setItem("token", response.token);
+ } catch (error) {
+ console.log("error: ", error);
+ }
+ })();
}
}, [location]);
@@ -177,7 +203,6 @@ const Layout = ({ children }) => {
};
function App() {
-
return (
diff --git a/src/components/Header/index.jsx b/src/components/Header/index.jsx
index d5a13c24..538daf69 100644
--- a/src/components/Header/index.jsx
+++ b/src/components/Header/index.jsx
@@ -322,7 +322,7 @@ const Header = () => {
-
+ navigate("/")} style={{ cursor: 'pointer' }}>