重构认证逻辑,优化登录和用户信息获取流程,新增全局缓存支持
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
'use client'
|
||||
import {createContext, ReactNode, useCallback, useEffect, useMemo, useState} from 'react'
|
||||
import {createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'
|
||||
import Link from 'next/link'
|
||||
import Image from 'next/image'
|
||||
import {LinkItem, MenuItem} from './navs'
|
||||
@@ -8,14 +8,14 @@ import ProductMenu from './product'
|
||||
import HelpMenu from './help'
|
||||
import Wrap from '@/components/wrap'
|
||||
import logo from '@/assets/logo.webp'
|
||||
import {Button} from '@/components/ui/button'
|
||||
import {useProfileStore} from '@/components/providers/StoreProvider'
|
||||
|
||||
export const HeaderContext = createContext<{
|
||||
setMenu: (value: boolean) => void
|
||||
} | null>(null)
|
||||
|
||||
export type ProviderProps = {
|
||||
userCenter: ReactNode
|
||||
}
|
||||
export type ProviderProps = {}
|
||||
|
||||
export default function Provider(props: ProviderProps) {
|
||||
|
||||
@@ -51,7 +51,13 @@ export default function Provider(props: ProviderProps) {
|
||||
], [])
|
||||
|
||||
// ======================
|
||||
// 渲染组件
|
||||
// 用户信息
|
||||
// ======================
|
||||
|
||||
const profile = useProfileStore(store=>store.profile)
|
||||
|
||||
// ======================
|
||||
// render
|
||||
// ======================
|
||||
|
||||
return (
|
||||
@@ -116,7 +122,35 @@ export default function Provider(props: ProviderProps) {
|
||||
</nav>
|
||||
</div>
|
||||
{/* 登录 */}
|
||||
{props.userCenter}
|
||||
<div className={`flex items-center`}>
|
||||
{profile == undefined
|
||||
? <>
|
||||
<Link
|
||||
href="/login"
|
||||
className={`w-24 h-12 flex items-center justify-center lg:text-lg`}
|
||||
>
|
||||
<span>登录</span>
|
||||
</Link>
|
||||
<Link
|
||||
href="/login"
|
||||
className={[
|
||||
`w-20 lg:w-24 h-10 lg:h-12 bg-gradient-to-r rounded-sm flex items-center justify-center lg:text-lg text-white`,
|
||||
`transition-colors duration-200 ease-in-out`,
|
||||
`from-blue-500 to-cyan-400 hover:from-blue-500 hover:to-cyan-300`,
|
||||
].join(' ')}
|
||||
>
|
||||
<span>注册</span>
|
||||
</Link>
|
||||
</>
|
||||
: (
|
||||
<Link href={`/admin`}>
|
||||
<Button theme={`gradient`}>
|
||||
进入控制台
|
||||
</Button>
|
||||
</Link>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</Wrap>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user