feat: update new feature temp for panel

This commit is contained in:
2025-03-04 01:20:55 +08:00
parent 6e96247b50
commit fd3288cb5b
45 changed files with 2559 additions and 954 deletions

6
template/user/route.ts Normal file
View File

@@ -0,0 +1,6 @@
import { app } from '../app';
app.route({
path: 'user',
key: 'login',
});

View File

@@ -0,0 +1,50 @@
import { message } from '../../app';
import { query } from '../../app';
import { createStore } from 'zustand/vanilla';
type User = {
id: string;
username?: string;
nickname?: string;
avatar: string;
};
interface UserWallStore {
user?: User;
setUser: (user: User) => void;
/**
* 查询用户信息,用户没有登陆,则打开登陆页面
* @param openOnNoLogin
* @returns
*/
queryMe: (openOnNoLogin?: boolean) => Promise<void>;
logout: () => void;
isLogin: () => boolean;
}
export const useUserWallStore = createStore<UserWallStore>((set, get) => ({
user: undefined,
setUser: (user: User) => set({ user }),
queryMe: async (openOnNoLogin = true) => {
const res = await query.post(
{
path: 'user',
key: 'me',
},
{
afterResponse: !openOnNoLogin ? async (res) => res : undefined,
},
);
console.log('queryMe', res);
if (res.code === 200) {
set({ user: res.data });
}
},
logout: () => {
set({ user: undefined });
localStorage.removeItem('token');
},
isLogin: () => {
return !!get().user;
},
}));