diff --git a/desktop/frontend/src/components/start_menu/index.tsx b/desktop/frontend/src/components/start_menu/index.tsx index 86f6b74c3..e473b613e 100644 --- a/desktop/frontend/src/components/start_menu/index.tsx +++ b/desktop/frontend/src/components/start_menu/index.tsx @@ -1,28 +1,31 @@ +/* eslint-disable @next/next/no-img-element */ import React from 'react'; import useAppStore from 'stores/app'; import useSessionStore from 'stores/session'; import styles from './index.module.scss'; -import Image from 'next/image'; import { useQuery } from '@tanstack/react-query'; import request from 'services/request'; -import { formatMoney, formatTime } from 'utils/format'; +import { formatMoney } from 'utils/format'; import ChargeButton from './charge_button'; import { Divider, Link } from '@fluentui/react-components'; import download from 'utils/downloadFIle'; import { useRouter } from 'next/router'; +import useLocalSession from 'hooks/useLocalSession'; export default function StartMenu() { const { isHideStartMenu, toggleStartMenu } = useAppStore((s) => s); - const { session, delSession } = useSessionStore((s) => s); - const user = session?.user || {}; + const { delSession } = useSessionStore((s) => s); + + const { localSession } = useLocalSession(); const router = useRouter(); const amount = useQuery( ['user-amount'], - () => request.post('/api/kubernetes/account/get_amount', { kubeconfig: session.kubeconfig }), + () => + request.post('/api/kubernetes/account/get_amount', { kubeconfig: localSession.kubeconfig }), { enabled: !isHideStartMenu } @@ -46,12 +49,16 @@ export default function StartMenu() {
- + -

{user?.name}

+
{localSession?.user?.name}
-

角色:管理员

-

上次登录:{formatTime(new Date().getTime())}

@@ -68,7 +75,7 @@ export default function StartMenu() { { e.preventDefault(); - download('kubeconfig.yaml', session.kubeconfig); + download('kubeconfig.yaml', localSession?.kubeconfig.toString()); }} > 下载 kubeconfig.yaml diff --git a/desktop/frontend/src/components/taskbar/index.tsx b/desktop/frontend/src/components/taskbar/index.tsx index 134b07ef4..4192de1a8 100644 --- a/desktop/frontend/src/components/taskbar/index.tsx +++ b/desktop/frontend/src/components/taskbar/index.tsx @@ -1,22 +1,16 @@ +/* eslint-disable @next/next/no-img-element */ import clsx from 'clsx'; import Icon from 'components/icons'; -import { useEffect, useState } from 'react'; import useAppStore from '../../stores/app'; -import useSessionStore from '../../stores/session'; import styles from './taskbar.module.scss'; import Sealos from '../../assets/icons/sealos.svg'; +import useLocalSession from 'hooks/useLocalSession'; const Taskbar = () => { const { openedApps, currentApp, switchApp, toggleStartMenu } = useAppStore((state) => state); - const session = useSessionStore((s) => s.session); - const [avatar, setAvatar] = useState(''); - useEffect(() => { - if (session.user.avatar) { - setAvatar(session.user.avatar); - } - }, [session]); + const { localSession } = useLocalSession(); return (
@@ -27,7 +21,13 @@ const Taskbar = () => { toggleStartMenu(); }} > - +
diff --git a/desktop/frontend/src/hooks/useLocalSession.ts b/desktop/frontend/src/hooks/useLocalSession.ts new file mode 100644 index 000000000..82fdcf317 --- /dev/null +++ b/desktop/frontend/src/hooks/useLocalSession.ts @@ -0,0 +1,32 @@ +import { Session } from 'interfaces/session'; +import { useEffect, useState } from 'react'; +import useSessionStore from 'stores/session'; + +function useLocalSession() { + const { session } = useSessionStore((s) => s); + const [localSession, setLocalSession] = useState({ + token: { + access_token: '', + token_type: '', + refresh_token: '', + expiry: '' + }, + kubeconfig: { + id: '', + name: '', + avatar: '' + }, + user: { + id: '', + name: '', + avatar: '' + } + }); + useEffect(() => { + setLocalSession(session); + }, [session]); + + return { localSession }; +} + +export default useLocalSession; diff --git a/desktop/frontend/src/interfaces/session.ts b/desktop/frontend/src/interfaces/session.ts index ad90b2317..6920181fb 100644 --- a/desktop/frontend/src/interfaces/session.ts +++ b/desktop/frontend/src/interfaces/session.ts @@ -11,17 +11,12 @@ export type UserInfo = { readonly avatar: string; }; -// TODO: 这里的类型定义有问题,需要修复 -export type KubeConfig = { - readonly id: string; - readonly name: string; - readonly avatar: string; -}; +export type KubeConfig = string; export type Session = { - token: OAuthToken; + token?: OAuthToken; user: UserInfo; - kubeconfig: string; + kubeconfig: KubeConfig; }; const sessionKey = 'session';