@@ -7,16 +7,17 @@ import Iconfont from '@/components/Iconfont';
7
7
import BrandLogo from '@/components/BrandLogo' ;
8
8
9
9
import i18n from '@/i18n' ;
10
- import { getUser , userLogout } from '@/service/user' ;
10
+ import { userLogout } from '@/service/user' ;
11
11
import { INavItem } from '@/typings/main' ;
12
- import { IUserVO , IRole } from '@/typings/user' ;
12
+ import { IRole } from '@/typings/user' ;
13
13
14
14
// ----- hooks -----
15
15
import getConnectionEnvList from './functions/getConnection' ;
16
16
17
17
// ----- store -----
18
18
import { useMainStore , setMainPageActiveTab } from '@/pages/main/store/main' ;
19
19
import { getConnectionList } from '@/pages/main/store/connection' ;
20
+ import { useUserStore , setCurUser } from '@/store/user' ;
20
21
21
22
// ----- block -----
22
23
import Workspace from './workspace' ;
@@ -65,8 +66,12 @@ const initNavConfig: INavItem[] = [
65
66
66
67
function MainPage ( ) {
67
68
const navigate = useNavigate ( ) ;
69
+ const { userInfo } = useUserStore ( state => {
70
+ return {
71
+ userInfo : state . curUser
72
+ }
73
+ } ) ;
68
74
const [ navConfig , setNavConfig ] = useState < INavItem [ ] > ( initNavConfig ) ;
69
- const [ userInfo , setUserInfo ] = useState < IUserVO > ( ) ;
70
75
const mainPageActiveTab = useMainStore ( ( state ) => state . mainPageActiveTab ) ;
71
76
const [ activeNavKey , setActiveNavKey ] = useState < string > (
72
77
__ENV__ === 'desktop' ? mainPageActiveTab : window . location . pathname . split ( '/' ) [ 1 ] || mainPageActiveTab ,
@@ -98,11 +103,9 @@ function MainPage() {
98
103
99
104
const handleInitPage = async ( ) => {
100
105
const cloneNavConfig = [ ...navConfig ] ;
101
- const res = await getUser ( ) ;
102
- if ( res ) {
103
- setUserInfo ( res ) ;
106
+ if ( userInfo ) {
104
107
const hasTeamIcon = cloneNavConfig . find ( ( i ) => i . key === 'team' ) ;
105
- if ( res . admin && ! hasTeamIcon ) {
108
+ if ( userInfo . admin && ! hasTeamIcon ) {
106
109
cloneNavConfig . splice ( 3 , 0 , {
107
110
key : 'team' ,
108
111
icon : '\ue64b' ,
@@ -112,7 +115,7 @@ function MainPage() {
112
115
name : i18n ( 'team.title' ) ,
113
116
} ) ;
114
117
}
115
- if ( ! res . admin && hasTeamIcon ) {
118
+ if ( ! userInfo . admin && hasTeamIcon ) {
116
119
cloneNavConfig . splice ( 3 , 1 ) ;
117
120
}
118
121
}
@@ -130,7 +133,7 @@ function MainPage() {
130
133
131
134
const handleLogout = ( ) => {
132
135
userLogout ( ) . then ( ( ) => {
133
- setUserInfo ( undefined ) ;
136
+ setCurUser ( undefined ) ;
134
137
navigate ( '/login' ) ;
135
138
} ) ;
136
139
} ;
0 commit comments