diff --git a/src/pages/auth/modules/BaseHeader.tsx b/src/pages/auth/modules/BaseHeader.tsx
index d93cee2..52fd8d2 100644
--- a/src/pages/auth/modules/BaseHeader.tsx
+++ b/src/pages/auth/modules/BaseHeader.tsx
@@ -51,18 +51,27 @@ export const BaseHeader = (props: { main?: React.ComponentType | null }) => {
return (
<>
-
+
{
store.links.map(link => (
- {
+ if (!link.href) return;
+ if (link.href.startsWith('http') || link.isRoot) {
+ window.open(link.href, '_blank');
+ return;
+ }
+ navigate({
+ to: link.href
+ })
+ }}
>
- {link.key === 'home' && }
- {link.icon && {link.icon}}
- {link.title}
-
+ {link.key === 'home' && }
+ {link.icon && <>{link.icon}>}
+ {!link.icon && link.title}
+
+
))
}
diff --git a/src/pages/auth/store.ts b/src/pages/auth/store.ts
index 765f81e..0f44253 100644
--- a/src/pages/auth/store.ts
+++ b/src/pages/auth/store.ts
@@ -34,13 +34,15 @@ export type LayoutStore = {
};
setLoginPageConfig: (config: Partial
) => void;
links: HeaderLink[];
+ setLinks: (links: HeaderLink[]) => void;
};
type HeaderLink = {
- title: string;
+ title?: string;
href: string;
description?: string;
icon?: React.ReactNode;
key?: string;
+ isRoot?: boolean;
};
export const useLayoutStore = create((set, get) => ({
@@ -78,19 +80,12 @@ export const useLayoutStore = create((set, get) => ({
const token = await queryLogin.getToken();
if (token) {
set({ me: {} })
- let me: UserInfo | undefined = undefined;
-
- const _user = await queryLogin.checkLocalUser() as UserInfo;
- if (_user) {
- me = _user;
- }
- if (!me) {
- const res = await queryLogin.getMe();
- me = res.code === 200 ? res.data : undefined;
- }
- if (me) {
- set({ me: me });
- set({ isAdmin: me.orgs?.includes?.('admin') || false });
+ const me = await queryLogin.getMe();
+ // const user = await queryLogin.checkLocalUser() as UserInfo;
+ const user = me.code === 200 ? me.data : undefined;
+ if (user) {
+ set({ me: user });
+ set({ isAdmin: user.orgs?.includes?.('admin') || false });
} else {
set({ me: undefined, isAdmin: false });
}
@@ -107,4 +102,5 @@ export const useLayoutStore = create((set, get) => ({
loginPageConfig: { ...state.loginPageConfig, ...config },
})),
links: [{ title: '', href: '/', key: 'home' }],
+ setLinks: (links) => set({ links }),
}));