Skip to content

Commit

Permalink
Merge pull request #549 from culturecreates/bugfix/issue-538
Browse files Browse the repository at this point in the history
fix: fixed issue with getting kicked out of cms
  • Loading branch information
AbhishekPAnil authored Aug 28, 2023
2 parents c784eb8 + 857f4f0 commit fcbab45
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 5 deletions.
23 changes: 20 additions & 3 deletions src/pages/Dashboard/Dashboard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ import Sidebar from '../../components/Sidebar/Main';
import { useNavigate, useParams } from 'react-router-dom';
import { PathName } from '../../constants/pathName';
import { useSelector, useDispatch } from 'react-redux';
import { getUserDetails } from '../../redux/reducer/userSlice';
import { getUserDetails, setUser } from '../../redux/reducer/userSlice';
import { useLazyGetCalendarQuery, useGetAllCalendarsQuery } from '../../services/calendar';
import { setSelectedCalendar } from '../../redux/reducer/selectedCalendarSlice';
import { setInterfaceLanguage } from '../../redux/reducer/interfaceLanguageSlice';
import i18n from 'i18next';
import Cookies from 'js-cookie';
import { useLazyGetCurrentUserQuery } from '../../services/users';

const { Header, Content } = Layout;

Expand All @@ -29,6 +30,8 @@ function Dashboard() {
{ skip: accessToken ? false : true },
);

const [getCurrentUserDetails] = useLazyGetCurrentUserQuery();

let { calendarId } = useParams();
let [searchParams] = useSearchParams();

Expand All @@ -37,8 +40,22 @@ function Dashboard() {
);

useEffect(() => {
if (!accessToken && accessToken === '') navigate(PathName.Login);
else {
if (!accessToken && accessToken === '') {
const accessToken = Cookies.get('accessToken');
const refreshToken = Cookies.get('refreshToken');

if (accessToken && calendarId) {
getCurrentUserDetails({ accessToken: accessToken, calendarId: calendarId })
.unwrap()
.then((response) => {
dispatch(
setUser({ user: { ...response }, refreshToken: { token: refreshToken }, accessToken: accessToken }),
);
});
} else {
navigate(PathName.Login);
}
} else {
if (location?.state?.previousPath?.toLowerCase() === 'login' || !calendarId)
dispatch(setInterfaceLanguage(user?.interfaceLanguage?.toLowerCase()));
i18n.changeLanguage(user?.interfaceLanguage?.toLowerCase());
Expand Down
1 change: 1 addition & 0 deletions src/redux/reducer/userSlice.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export const userSlice = createSlice({
},
clearUser: () => {
Cookies.remove('accessToken');
Cookies.remove('refreshToken');
return initialState;
},
},
Expand Down
5 changes: 4 additions & 1 deletion src/services/users.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createApi } from '@reduxjs/toolkit/query/react';
import { baseQueryWithReauth } from '../utils/services';

export const usersApi = createApi({
reducerPath: 'usersApi',
baseQuery: baseQueryWithReauth,
Expand All @@ -20,11 +21,12 @@ export const usersApi = createApi({
query: () => `users/roles`,
}),
getCurrentUser: builder.query({
query: ({ calendarId }) => {
query: ({ accessToken, calendarId }) => {
return {
url: `users/current`,
method: 'GET',
headers: {
authorization: `Bearer ${accessToken}`,
'calendar-id': calendarId,
},
};
Expand Down Expand Up @@ -75,4 +77,5 @@ export const {
useGetAllUsersQuery,
useGetCurrentUserQuery,
useUpdateCurrentUserMutation,
useLazyGetCurrentUserQuery,
} = usersApi;
8 changes: 7 additions & 1 deletion src/utils/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@ const mutex = new Mutex();
const baseQuery = fetchBaseQuery({
baseUrl: process.env.REACT_APP_API_URL,
prepareHeaders: (headers, { getState }) => {
const token = getState().user.accessToken;
let token = getState().user.accessToken;
if (token) {
headers.set('authorization', `Bearer ${token}`);
} else {
token = Cookies.get('accessToken');
headers.set('authorization', `Bearer ${token}`);
}
return headers;
},
Expand Down Expand Up @@ -46,6 +49,9 @@ export const baseQueryWithReauth = async (args, api, extraOptions) => {
const release = await mutex.acquire();
let refreshResult;
let token = api.getState().user?.refreshToken?.token;
if (!token) {
token = Cookies.get('refreshToken');
}
try {
const fetchResponse = await fetch(`${process.env.REACT_APP_API_URL}/refresh-token`, {
method: 'POST',
Expand Down

0 comments on commit fcbab45

Please sign in to comment.