diff --git a/src/common/misc/userDataManagment/useChangeLoggedUser.ts b/src/common/misc/userDataManagment/useChangeLoggedUser.ts index e9ce061..a038451 100644 --- a/src/common/misc/userDataManagment/useChangeLoggedUser.ts +++ b/src/common/misc/userDataManagment/useChangeLoggedUser.ts @@ -1,5 +1,5 @@ import { closeAllChats } from '@/redux/features/openedChatsSlice'; -import { useGetLoggedUserQuery } from '@/redux/services/loggedUserAPI'; +import { useGetLoggedUserQuery, useGetUserChatsQuery } from '@/redux/services/loggedUserAPI'; import { useState } from 'react'; import { useDispatch } from 'react-redux'; @@ -7,6 +7,8 @@ export default function useChangeLoggedUser(userId?: string) { const dispatch = useDispatch(); const { refetch: refetchLoggedUser } = useGetLoggedUserQuery({}); + const { refetch: refetchChats } = useGetUserChatsQuery({}); + const [isLoading, setIsLoading] = useState(false); async function switchLoggedUser() { @@ -14,14 +16,15 @@ export default function useChangeLoggedUser(userId?: string) { dispatch(closeAllChats()); - await refetchLoggedUser(); - if (localStorage) { if (userId) localStorage.setItem('loggedUser', JSON.stringify(userId)); // Redux logged user query handles random user fetching if no userId is stored in localStorage else localStorage.removeItem('loggedUser'); } + await refetchChats(); + await refetchLoggedUser(); + setIsLoading(false); } diff --git a/src/components/pages/Home/index.tsx b/src/components/pages/Home/index.tsx index ad52891..8f05aa9 100644 --- a/src/components/pages/Home/index.tsx +++ b/src/components/pages/Home/index.tsx @@ -1,6 +1,7 @@ import ContactsSidebar from '@/components/molecules/ContactsSidebar'; import HomeWall from '@/components/organisms/HomeWall'; import ShortcutsSidebar from '@/components/organisms/ShortcutsSidebar'; +import { useGetLoggedUserQuery } from '@/redux/services/loggedUserAPI'; import { BoxProps } from '@mui/material'; import { StyledRoot } from './styles'; diff --git a/src/components/pages/Profile/index.tsx b/src/components/pages/Profile/index.tsx index a4aab67..3a28393 100644 --- a/src/components/pages/Profile/index.tsx +++ b/src/components/pages/Profile/index.tsx @@ -16,6 +16,7 @@ import { ProfileProps, TProfileTabs } from './types'; export default function Profile({ userId, useTabsRouting = true, sx, ...rootProps }: ProfileProps) { const theme = useTheme(); const router = useRouter(); + const { data: profileData, refetch } = useUserDataByIdQuery(userId); const [selectedTab, setSelectedTab] = useState(useTabsRouting ? null : 'posts'); diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 6e65530..0d09d55 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -61,6 +61,7 @@ import { LocalizationProvider } from '@mui/x-date-pickers'; import { ThemeProvider as NextThemesProvider } from 'next-themes'; import { Provider as StoreProvider } from 'react-redux'; +import { useGetLoggedUserQuery } from '@/redux/services/loggedUserAPI'; import '@fortawesome/fontawesome-svg-core/styles.css'; const { library, config } = require('@fortawesome/fontawesome-svg-core'); diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index 7f3e7b8..8b8c20f 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -11,6 +11,7 @@ import createEmotionCache from '@/design/createEmotionCache'; import createEmotionServer from '@emotion/server/create-instance'; import { AppType } from 'next/app'; import { EmotionAppProps } from './_app'; +import { useGetLoggedUserQuery } from '@/redux/services/loggedUserAPI'; interface EmotionDocumentProps extends DocumentProps { emotionStyleTags: JSX.Element[];