dropdown menu
This commit is contained in:
parent
cdce22fdd6
commit
6fdb4ecc3f
@ -1,23 +1,61 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
import menu from "./menu";
|
||||||
|
import { IconCaretUp, IconRight } from "@arco-design/web-react/icon";
|
||||||
|
import "@arco-design/web-react/dist/css/arco.css";
|
||||||
|
|
||||||
export default function ControlPanel() {
|
export default function ControlPanel() {
|
||||||
return (
|
return (
|
||||||
<nav className="bg-gray-200 ">
|
<nav className="bg-gray-200 relative">
|
||||||
<div className="flex justify-between items-center">
|
<div className="flex justify-between items-center">
|
||||||
<ul className="flex justify-start text-md ms-3">
|
<ul className="flex justify-start text-md ms-3 select-none relative">
|
||||||
<li className="me-5">File</li>
|
{Object.keys(menu).map((category) => (
|
||||||
<li className="me-5">Edit</li>
|
<div key={category}>
|
||||||
<li className="me-5">Insert</li>
|
<div className="peer px-3 py-1 bg-gray-200 hover:bg-gray-300 relative z-10">
|
||||||
<li className="me-5">View</li>
|
{category}
|
||||||
<li className="me-5">Help</li>
|
</div>
|
||||||
|
<ul className="hidden peer-hover:flex hover:flex w-[200px] flex-col bg-white drop-shadow-lg absolute z-20">
|
||||||
|
{Object.keys(menu[category]).map((item, index) => {
|
||||||
|
if (menu[category][item].length > 0) {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
key={index}
|
||||||
|
className="group relative px-5 py-3 hover:bg-gray-200 z-10"
|
||||||
|
>
|
||||||
|
<div className="flex justify-between items-center">
|
||||||
|
<li>{item}</li>
|
||||||
|
<IconRight />
|
||||||
|
</div>
|
||||||
|
<ul className="hidden group-hover:flex hover:flex w-[200px] flex-col bg-white drop-shadow-lg absolute z-30 top-0 left-full">
|
||||||
|
{menu[category][item].map((e) => (
|
||||||
|
<li
|
||||||
|
key={e}
|
||||||
|
className="px-5 py-3 hover:bg-gray-200 z-10"
|
||||||
|
>
|
||||||
|
{e}
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<li
|
||||||
|
className="px-5 py-3 hover:bg-gray-200 relative z-10"
|
||||||
|
key={index}
|
||||||
|
>
|
||||||
|
{item}
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
<button>
|
<button>
|
||||||
<i className="fa-solid fa-caret-up me-3"></i>
|
<IconCaretUp />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="p-1">
|
<div className="p-1">tools</div>
|
||||||
tools
|
|
||||||
</div>
|
|
||||||
</nav>
|
</nav>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
59
src/components/menu.js
Normal file
59
src/components/menu.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
const menu = {
|
||||||
|
File: {
|
||||||
|
New: [],
|
||||||
|
"New window": [],
|
||||||
|
Save: [],
|
||||||
|
"Save as": [],
|
||||||
|
Share: [],
|
||||||
|
Rename: [],
|
||||||
|
Import: [],
|
||||||
|
"Export as": [".png", ".jpg", ".pdf", ".xml"],
|
||||||
|
"Export source": ["MySQL", "PostgreSQL", "DBML"],
|
||||||
|
Properties: [],
|
||||||
|
Close: [],
|
||||||
|
},
|
||||||
|
Edit: {
|
||||||
|
Undo: [],
|
||||||
|
Redo: [],
|
||||||
|
Cut: [],
|
||||||
|
Copy: [],
|
||||||
|
"Copy as image": [],
|
||||||
|
Paste: [],
|
||||||
|
Delete: [],
|
||||||
|
"Edit table": [],
|
||||||
|
},
|
||||||
|
View: {
|
||||||
|
Toolbar: [],
|
||||||
|
Grid: [],
|
||||||
|
Sidebar: [],
|
||||||
|
Editor: [],
|
||||||
|
"Reset view": [],
|
||||||
|
"View schema": [],
|
||||||
|
Theme: ["Light", "Dark"],
|
||||||
|
"Zoom in": [],
|
||||||
|
"Zoom out": [],
|
||||||
|
Fullscreen: [],
|
||||||
|
},
|
||||||
|
Insert: {
|
||||||
|
"New table": [],
|
||||||
|
"New relationship": [],
|
||||||
|
Note: [],
|
||||||
|
Image: [],
|
||||||
|
Textbox: [],
|
||||||
|
Shape: ["Rhombus", "Rectangle"],
|
||||||
|
},
|
||||||
|
Logs: {
|
||||||
|
"Open logs": [],
|
||||||
|
"Commit changes": [],
|
||||||
|
"Revert changes": [],
|
||||||
|
"View commits": [],
|
||||||
|
},
|
||||||
|
Help: {
|
||||||
|
Shortcuts: [],
|
||||||
|
"Ask us on discord": [],
|
||||||
|
"Tweet us": [],
|
||||||
|
"Found a bug": [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default menu;
|
Loading…
Reference in New Issue
Block a user