generated from dwd/boilarplate-remix-tailwind-antd
student-dashboard
parent
428cf0fffe
commit
84cab5341a
|
@ -0,0 +1,81 @@
|
||||||
|
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';
|
||||||
|
|
||||||
|
const { Header, Content, Footer, Sider } = Layout;
|
||||||
|
|
||||||
|
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 />),
|
||||||
|
];
|
||||||
|
|
||||||
|
const App: React.FC = () => {
|
||||||
|
const [collapsed, setCollapsed] = useState(false);
|
||||||
|
const {
|
||||||
|
token: { colorBgContainer, borderRadiusLG },
|
||||||
|
} = theme.useToken();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Layout style={{ minHeight: '100vh' }}>
|
||||||
|
<Sider theme="light" collapsible collapsed={collapsed} onCollapse={(value) => setCollapsed(value)}>
|
||||||
|
<div className="demo-logo-vertical" > IIMTT Logo </div>
|
||||||
|
|
||||||
|
<Menu theme="light" defaultSelectedKeys={['1']} mode="inline" items={items} > <span>Hi</span> </Menu>
|
||||||
|
</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,
|
||||||
|
borderRadius: borderRadiusLG,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Bill is a cat.
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
<Footer style={{ textAlign: 'center' }}>
|
||||||
|
Ant Design ©{new Date().getFullYear()} Created by Ant UED
|
||||||
|
</Footer>
|
||||||
|
</Layout>
|
||||||
|
</Layout>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default App;
|
13
yarn.lock
13
yarn.lock
|
@ -40,18 +40,7 @@
|
||||||
resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz"
|
resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz"
|
||||||
integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==
|
integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==
|
||||||
|
|
||||||
"@ant-design/icons@^5.3.7":
|
"@ant-design/icons@^5.3.7", "@ant-design/icons@^5.4.0":
|
||||||
version "5.4.0"
|
|
||||||
resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-5.4.0.tgz"
|
|
||||||
integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==
|
|
||||||
dependencies:
|
|
||||||
"@ant-design/colors" "^7.0.0"
|
|
||||||
"@ant-design/icons-svg" "^4.4.0"
|
|
||||||
"@babel/runtime" "^7.24.8"
|
|
||||||
classnames "^2.2.6"
|
|
||||||
rc-util "^5.31.1"
|
|
||||||
|
|
||||||
"@ant-design/icons@^5.4.0":
|
|
||||||
version "5.4.0"
|
version "5.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac"
|
resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac"
|
||||||
integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==
|
integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==
|
||||||
|
|
Loading…
Reference in New Issue