You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cvm/src/views/layout.jsx

47 lines
1.1 KiB
JavaScript

"use strict";
const React = require("react");
const classnames = require("classnames");
const {LocalsContext} = require("../express-async-react");
const isUnderPrefix = require("../is-under-prefix");
function MenuItem({ path, children }) {
let {currentPath} = React.useContext(LocalsContext);
let isActive = isUnderPrefix(path, currentPath);
return (
<div className={classnames("menu-item", {active: isActive})}>
<a href={path}>
{children}
</a>
</div>
);
}
module.exports = function Layout({ children }) {
return (
<html>
<head>
<title>CVM</title>
<link rel="stylesheet" href="/css/style.css"/>
</head>
<body>
<div className="menu">
<h1>CVM</h1>
<MenuItem path="/hardware">Hardware</MenuItem>
<MenuItem path="/disk-images">Disk Images</MenuItem>
<MenuItem path="/instances">Instances</MenuItem>
<MenuItem path="/users">Users</MenuItem>
</div>
<div className="content">
{children}
</div>
<script src="/js/bundle.js" />
<script src="/budo/livereload.js" />
</body>
</html>
);
};