diff --git a/Data/WebUI/src/App.js b/Data/WebUI/src/App.js
index 87576be..2605e49 100644
--- a/Data/WebUI/src/App.js
+++ b/Data/WebUI/src/App.js
@@ -1,118 +1,139 @@
import React from "react";
import FlowEditor from "./components/FlowEditor";
import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
-
import {
- AppBar,
- Toolbar,
- Typography,
- Box,
- Menu,
- MenuItem,
- Button,
- CssBaseline,
- ThemeProvider,
- createTheme
+ AppBar,
+ Toolbar,
+ Typography,
+ Box,
+ Menu,
+ MenuItem,
+ Button,
+ CssBaseline,
+ ThemeProvider,
+ createTheme
} from "@mui/material";
const darkTheme = createTheme({
- palette: {
- mode: "dark",
- background: {
- default: "#121212",
- paper: "#1e1e1e"
- },
- text: {
- primary: "#ffffff"
- }
+ palette: {
+ mode: "dark",
+ background: {
+ default: "#121212",
+ paper: "#1e1e1e"
+ },
+ text: {
+ primary: "#ffffff"
}
+ }
});
export default function App() {
- // Separate menu state for each dropdown
- const [workflowsAnchorEl, setWorkflowsAnchorEl] = React.useState(null);
- const [aboutAnchorEl, setAboutAnchorEl] = React.useState(null);
+ const [workflowsAnchorEl, setWorkflowsAnchorEl] = React.useState(null);
+ const [aboutAnchorEl, setAboutAnchorEl] = React.useState(null);
- const handleWorkflowsMenuOpen = (event) => {
- setWorkflowsAnchorEl(event.currentTarget);
- };
+ const handleWorkflowsMenuOpen = (event) => {
+ setWorkflowsAnchorEl(event.currentTarget);
+ };
- const handleAboutMenuOpen = (event) => {
- setAboutAnchorEl(event.currentTarget);
- };
+ const handleAboutMenuOpen = (event) => {
+ setAboutAnchorEl(event.currentTarget);
+ };
- const handleWorkflowsMenuClose = () => {
- setWorkflowsAnchorEl(null);
- };
+ const handleWorkflowsMenuClose = () => {
+ setWorkflowsAnchorEl(null);
+ };
- const handleAboutMenuClose = () => {
- setAboutAnchorEl(null);
- };
+ const handleAboutMenuClose = () => {
+ setAboutAnchorEl(null);
+ };
- return (
-
-
-
- {/* Top Menu Bar */}
-
-
-
- Borealis - Workflow Automation Tool
-
+ return (
+
+
+ {/*
+ Main container that:
+ - fills 100% viewport height
+ - organizes content with flexbox (vertical)
+ */}
+
+ {/* --- TOP BAR --- */}
+
+
+
+ Borealis - Workflow Automation Tool
+
- {/* Workflows Menu */}
- }
- >
- Workflows
-
-
+ {/* Workflows Menu */}
+ }
+ >
+ Workflows
+
+
- {/* About Menu */}
- }
- >
- About
-
-
-
-
+ {/* About Menu */}
+ }
+ >
+ About
+
+
+
+
- {/* Main Content - React Flow */}
-
- {
- document.getElementById("nodeCount").innerText = count;
- }} />
-
+ {/* --- REACT FLOW EDITOR --- */}
+ {/*
+ flexGrow={1} ⇒ This box expands to fill remaining vertical space
+ overflow="hidden" ⇒ No scroll bars, so React Flow does internal panning
+ mt: 1 ⇒ Add top margin so the gradient starts closer to the AppBar.
+ */}
+
+ {
+ document.getElementById("nodeCount").innerText = count;
+ }}
+ />
+
- {/* Status Bar */}
-
- Nodes: 0 | Update Rate: 500ms | Flask API Server:
- http://127.0.0.1:5000/data
-
-
-
- );
+ {/* --- STATUS BAR at BOTTOM --- */}
+
+ Nodes: 0 | Update Rate: 500ms | Flask API Server:{" "}
+
+ http://127.0.0.1:5000/data
+
+
+
+
+ );
}