1
0

完成初始化

This commit is contained in:
2025-05-08 19:15:32 +08:00
commit 956750a4c7
16 changed files with 6304 additions and 0 deletions

47
src/pages/App.tsx Normal file
View File

@@ -0,0 +1,47 @@
import './App.scss'
import {Layout, Menu} from 'antd'
import type {ItemType, MenuItemType} from 'antd/es/menu/interface'
import {isEqual} from 'licia'
import React, {useEffect, useState} from 'react'
import {NavLink, Outlet, useLocation} from 'react-router'
const {Header, Content} = Layout
const headerNav: Array<MenuItemType> = [
{key: '/', label: '首页'},
{key: '/conversation', label: '对话'},
]
const App: React.FC = () => {
const [_, setCurrentMenu] = useState<ItemType>()
const [selectedKeys, setSelectedKeys] = useState<Array<string>>([])
const location = useLocation()
useEffect(() => {
setSelectedKeys([location.pathname])
setCurrentMenu(headerNav.find((nav => isEqual(nav?.key, location.pathname))))
}, [location])
return (
<Layout className="app">
<Header className="header">
<Menu
className="header-nav"
theme="dark"
mode="horizontal"
selectedKeys={selectedKeys}
items={headerNav.map(nav => ({
key: nav.key,
label: <NavLink to={nav.key as string}>{nav.label}</NavLink>
}))}
/>
</Header>
<Layout>
<Content className="content">
<Outlet/>
</Content>
</Layout>
</Layout>
)
}
export default App