import React, { useState } from "react"; const MenuBar = () => { const [activeMenu, setActiveMenu] = useState(null); const [activeSubMenu, setActiveSubMenu] = useState(null); // State to track selection for all menu items const [selectedItems, setSelectedItems] = useState>( {} ); // Function to toggle selection for a specific item const toggleSelection = (itemName: string) => { setSelectedItems((prev) => ({ ...prev, [itemName]: !prev[itemName], // Toggle the selection state })); }; return (
{/* Top-level menu buttons */}
{/* File Menu */}
setActiveMenu("File")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
File
{/* File Dropdown */} {activeMenu === "File" && (
{/* New File */}
toggleSelection("New File")} >
{selectedItems["New File"] && "✓ "} New File
Ctrl + N
{/* Open Local File */}
toggleSelection("Open Local File")} >
{selectedItems["Open Local File"] && "✓ "} Open Local File
Ctrl + O
{/* Save Version */}
toggleSelection("Save Version")} >
{selectedItems["Save Version"] && "✓ "} Save Version
{/* Make a Copy */}
toggleSelection("Make a Copy")} >
{selectedItems["Make a Copy"] && "✓ "} Make a Copy
{/* Share */}
toggleSelection("Share")} >
{selectedItems["Share"] && "✓ "} Share
{/* Rename */}
toggleSelection("Rename")} >
{selectedItems["Rename"] && "✓ "} Rename
{/* Import */}
toggleSelection("Import")} >
{selectedItems["Import"] && "✓ "} Import
{/* Close File */}
toggleSelection("Close File")} >
{selectedItems["Close File"] && "✓ "} Close File
)}
{/* Edit Menu */}
setActiveMenu("Edit")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
Edit
{/* Edit Dropdown */} {activeMenu === "Edit" && (
{/* Undo */}
toggleSelection("Undo")} >
{selectedItems["Undo"] && "✓ "} Undo
Ctrl + Z
{/* Redo */}
toggleSelection("Redo")} >
{selectedItems["Redo"] && "✓ "} Redo
Ctrl + Shift + Z
{/* Undo History */}
toggleSelection("Undo History")} >
{selectedItems["Undo History"] && "✓ "} Undo History
{/* Redo History */}
toggleSelection("Redo History")} >
{selectedItems["Redo History"] && "✓ "} Redo History
{/* Find */}
toggleSelection("Find")} >
{selectedItems["Find"] && "✓ "} Find
Ctrl + F
{/* Delete */}
toggleSelection("Delete")} >
{selectedItems["Delete"] && "✓ "} Delete
{/* Select by... */}
toggleSelection("Select by...")} >
{selectedItems["Select by..."] && "✓ "} Select by...
{/* Keymap */}
toggleSelection("Keymap")} >
{selectedItems["Keymap"] && "✓ "} Keymap
)}
{/* View Menu */}
setActiveMenu("View")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
View
{/* View Dropdown */} {activeMenu === "View" && (
{/* Grid */}
toggleSelection("Grid")} >
{selectedItems["Grid"] && "✓ "} Grid
{/* Gizmo */}
setActiveSubMenu("View-Gizmo")} onMouseLeave={() => setActiveSubMenu(null)} >
{selectedItems["Gizmo"] && "✓ "} Gizmo
{/* Gizmo Submenu */} {activeSubMenu === "View-Gizmo" && (
{/* Visibility */}
toggleSelection("Visibility")} > {selectedItems["Visibility"] && "✓ "} Visibility
{/* Cube view */}
toggleSelection("Cube view")} > {selectedItems["Cube view"] && "✓ "} Cube view
{/* Sphere view */}
toggleSelection("Sphere view")} > {selectedItems["Sphere view"] && "✓ "} Sphere view
{/* Custom settings */}
toggleSelection("Custom settings")} > {selectedItems["Custom settings"] && "✓ "} Custom settings
)}
{/* Zoom */}
toggleSelection("Zoom")} >
{selectedItems["Zoom"] && "✓ "} Zoom
{/* Full Screen */}
toggleSelection("Full Screen")} >
{selectedItems["Full Screen"] && "✓ "} Full Screen
F11
)}
{/* Version History Menu */}
setActiveMenu("Version history")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
Version history
{/* Export As Menu */}
setActiveMenu("Export as...")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
Export as...
{/* Apps Menu */}
setActiveMenu("Apps")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
Apps
{/* Apps Dropdown */} {activeMenu === "Apps" && (
{/* New App */}
toggleSelection("New App")} >
{selectedItems["New App"] && "✓ "} New App
{/* Work-flow Monitor */}
toggleSelection("Work-flow Monitor")} >
{selectedItems["Work-flow Monitor"] && "✓ "} Work-flow Monitor
{/* Temperature Visualizer */}
toggleSelection("Temperature Visualizer")} >
{selectedItems["Temperature Visualizer"] && "✓ "} Temperature Visualizer
{/* View all */}
toggleSelection("View all")} >
{selectedItems["View all"] && "✓ "} View all
)}
{/* Help Menu */}
setActiveMenu("Help")} onMouseLeave={() => { setActiveMenu(null); setActiveSubMenu(null); }} >
Help
{/* Help Dropdown */} {activeMenu === "Help" && (
{/* Shortcuts */}
toggleSelection("Shortcuts")} >
{selectedItems["Shortcuts"] && "✓ "} Shortcuts
Ctrl + Shift + ?
{/* Manual */}
toggleSelection("Manual")} >
{selectedItems["Manual"] && "✓ "} Manual
{/* Video Tutorials */}
toggleSelection("Video Tutorials")} >
{selectedItems["Video Tutorials"] && "✓ "} Video Tutorials
{/* Report a bug */}
toggleSelection("Report a bug")} >
{selectedItems["Report a bug"] && "✓ "} Report a bug
)}
); }; export default MenuBar;