@@ -10,6 +10,7 @@ import { copySlice } from '#/features/use-copy/copy-slice' import { paramsStore } from '#/app/store/model-parametres-store' import { notificationSlice } from './notification-slice' +import { pendingSlice } from '#/features/pending' export const store = configureStore({ reducer: { @@ -21,6 +22,7 @@ export const store = configureStore({ params: paramsStore.reducer, settings: settingsSlice.reducer, copy: copySlice.reducer, + loading: pendingSlice.reducer, }, }) @@ -0,0 +1,2 @@ +export * from './pending.slice' +export { default as pendingSlice } from './pending.slice' @@ -0,0 +1,17 @@ +import { createSlice } from '@reduxjs/toolkit' + +export const pendingSlice = createSlice({ + name: 'pendingSlice', + initialState: { + userLoading: true, + }, + reducers: { + change: (state, action) => { + state.userLoading = action.payload + }, + }, +}) + +export const { change } = pendingSlice.actions + +export default pendingSlice @@ -0,0 +1 @@ +export * from './model' \ No newline at end of file @@ -19,6 +19,7 @@ import { MainMenuMobile } from '#/widgets/main-menu' import { SideMenu } from '#/widgets/side-menu' import { getDeviceType } from '#/shared/lib/helpers' import { LayoutProps } from '../types' +import { change } from '#/features/pending' const freeRoutes = ['/login', '/register', '/reset', '/change-password'] @@ -32,7 +33,8 @@ export const Layout: React.FC = ({ const { data: sessionData } = useSession() const appState = useAppSelector((state) => state) const dispatch = useAppDispatch() - const [isLoading, setIsLoading] = useState(true) + + const { userLoading } = useAppSelector((state) => state.loading) const desktop = device === 'desktop' @@ -42,13 +44,10 @@ export const Layout: React.FC = ({ const { data, status } = useSession() - const router = useRouter() - async function getUserData(access: string) { - setIsLoading(true) await dispatch(getUserBalance(access)) await dispatch(getAllInfo(access)) - setIsLoading(false) + dispatch(change(false)) } React.useEffect(() => { @@ -92,7 +91,7 @@ export const Layout: React.FC = ({ } }, [appState.settings.state]) - if (isLoading || isLoader || status === 'loading') { + if (userLoading || isLoader || status === 'loading') { return (