mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
fix(web): remove duplicate User.ts conflicting with user.ts on case-insensitive fs
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { reactive, watch } from 'vue'
|
||||
import { useLocalStorage } from '@vueuse/core'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
export interface UserInfo {
|
||||
id: string;
|
||||
username: string;
|
||||
role: string;
|
||||
displayName: string;
|
||||
avatarUrl: string;
|
||||
}
|
||||
|
||||
export const useUserStore = defineStore(
|
||||
'user',
|
||||
() => {
|
||||
const userInfo = reactive<UserInfo>({
|
||||
id: '',
|
||||
username: '',
|
||||
role: '',
|
||||
displayName: '',
|
||||
avatarUrl: '',
|
||||
})
|
||||
|
||||
const localToken = useLocalStorage('token', '')
|
||||
|
||||
const login = (userData: UserInfo, token: string) => {
|
||||
localToken.value = token
|
||||
for (const key of Object.keys(userData) as (keyof UserInfo)[]) {
|
||||
userInfo[key] = userData[key]
|
||||
}
|
||||
}
|
||||
|
||||
const patchUserInfo = (patch: Partial<UserInfo>) => {
|
||||
for (const key of Object.keys(patch) as (keyof UserInfo)[]) {
|
||||
const value = patch[key]
|
||||
if (value !== undefined) {
|
||||
userInfo[key] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const exitLogin = () => {
|
||||
localToken.value = ''
|
||||
for (const key of Object.keys(userInfo) as (keyof UserInfo)[]) {
|
||||
userInfo[key as keyof UserInfo] = ''
|
||||
}
|
||||
}
|
||||
const router = useRouter()
|
||||
watch(
|
||||
localToken,
|
||||
() => {
|
||||
if (!localToken.value) {
|
||||
exitLogin()
|
||||
router.replace({ name: 'Login' })
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
},
|
||||
)
|
||||
return {
|
||||
userInfo,
|
||||
login,
|
||||
patchUserInfo,
|
||||
exitLogin,
|
||||
}
|
||||
},
|
||||
{
|
||||
persist: true,
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user