|
|
@ -1,9 +1,74 @@ |
|
|
|
|
|
import React, { useState } from 'react'; |
|
|
|
|
|
import { |
|
|
|
|
|
DesktopOutlined, |
|
|
|
|
|
FileOutlined, |
|
|
|
|
|
PieChartOutlined, |
|
|
|
|
|
TeamOutlined, |
|
|
|
|
|
UserOutlined, |
|
|
|
|
|
} from '@ant-design/icons'; |
|
|
|
|
|
import type { MenuProps } from 'antd'; |
|
|
|
|
|
import { Breadcrumb, Layout, Menu, theme } from 'antd'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function Home () { |
|
|
function Home () { |
|
|
|
|
|
|
|
|
|
|
|
const { Header, Content, Footer, Sider } = Layout; |
|
|
|
|
|
|
|
|
|
|
|
const [collapsed, setCollapsed] = useState(false); |
|
|
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
|
token: { colorBgContainer }, |
|
|
|
|
|
} = theme.useToken(); |
|
|
|
|
|
|
|
|
|
|
|
type MenuItem = Required<MenuProps>['items'][number]; |
|
|
|
|
|
|
|
|
|
|
|
function getItem( |
|
|
|
|
|
label: React.ReactNode, |
|
|
|
|
|
key: React.Key, |
|
|
|
|
|
icon?: React.ReactNode, |
|
|
|
|
|
children?: MenuItem[], |
|
|
|
|
|
): MenuItem { |
|
|
|
|
|
return { |
|
|
|
|
|
key, |
|
|
|
|
|
icon, |
|
|
|
|
|
children, |
|
|
|
|
|
label, |
|
|
|
|
|
} as MenuItem; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const items: MenuItem[] = [ |
|
|
|
|
|
getItem('Option 1', '1', <PieChartOutlined />), |
|
|
|
|
|
getItem('Option 2', '2', <DesktopOutlined />), |
|
|
|
|
|
getItem('User', 'sub1', <UserOutlined />, [ |
|
|
|
|
|
getItem('Tom', '3'), |
|
|
|
|
|
getItem('Bill', '4'), |
|
|
|
|
|
getItem('Alex', '5'), |
|
|
|
|
|
]), |
|
|
|
|
|
getItem('Team', 'sub2', <TeamOutlined />, [getItem('Team 1', '6'), getItem('Team 2', '8')]), |
|
|
|
|
|
getItem('Files', '9', <FileOutlined />), |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
<div> |
|
|
|
|
|
<h1>Hello world in Home!</h1> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<Layout style={{ minHeight: '100vh' }}> |
|
|
|
|
|
<Sider collapsible collapsed={collapsed} onCollapse={(value) => setCollapsed(value)}> |
|
|
|
|
|
<div className="demo-logo-vertical" /> |
|
|
|
|
|
<Menu theme="dark" defaultSelectedKeys={['1']} mode="inline" items={items} /> |
|
|
|
|
|
</Sider> |
|
|
|
|
|
<Layout> |
|
|
|
|
|
<Header style={{ padding: 0, background: colorBgContainer }} /> |
|
|
|
|
|
<Content style={{ margin: '0 16px' }}> |
|
|
|
|
|
<Breadcrumb style={{ margin: '16px 0' }}> |
|
|
|
|
|
<Breadcrumb.Item>User</Breadcrumb.Item> |
|
|
|
|
|
<Breadcrumb.Item>Bill</Breadcrumb.Item> |
|
|
|
|
|
</Breadcrumb> |
|
|
|
|
|
<div style={{ padding: 24, minHeight: 360, background: colorBgContainer }}> |
|
|
|
|
|
Bill is a cat. |
|
|
|
|
|
</div> |
|
|
|
|
|
</Content> |
|
|
|
|
|
<Footer style={{ textAlign: 'center' }}>Ant Design ©2023 Created by Ant UED</Footer> |
|
|
|
|
|
</Layout> |
|
|
|
|
|
</Layout> |
|
|
) |
|
|
) |
|
|
} |
|
|
} |
|
|
|
|
|
|