Skip to content

Commit

Permalink
Add select/create menu to navbar, move Add goal button
Browse files Browse the repository at this point in the history
  • Loading branch information
mhauru committed Mar 11, 2022
1 parent 14ffced commit e24699f
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 41 deletions.
82 changes: 48 additions & 34 deletions frontend/src/components/CaseContainer.js
@@ -1,6 +1,14 @@
import React, { Component } from "react";
import { useParams } from "react-router-dom";
import { Grid, Box, DropButton, TextInput, Layer, Button } from "grommet";
import {
Grid,
Box,
DropButton,
Heading,
TextInput,
Layer,
Button,
} from "grommet";
import { grommet } from "grommet/themes";
import { FormSearch, FormClose, ZoomIn, ZoomOut } from "grommet-icons";
import { deepMerge } from "grommet/utils";
Expand All @@ -10,7 +18,6 @@ import MermaidChart from "./Mermaid";
import configData from "../config.json";

import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";
import CaseSelector from "./CaseSelector.js";
import ItemViewer from "./ItemViewer.js";
import ItemEditor from "./ItemEditor.js";
import ItemCreator from "./ItemCreator.js";
Expand Down Expand Up @@ -303,13 +310,13 @@ class CaseContainer extends Component {
return (
<Box>
<Grid
rows={["3px", "flex", "xxsmall"]} //{['xxsmall', 'flex', 'xxsmall']}
rows={["auto", "flex", "xxsmall"]}
columns={["flex", "20%"]}
gap="medium"
gap="none"
areas={[
{ name: "header", start: [0, 0], end: [0, 0] },
{ name: "main", start: [0, 1], end: [0, 1] },
{ name: "right", start: [1, 1], end: [1, 1] },
{ name: "header", start: [0, 0], end: [1, 0] },
{ name: "main", start: [0, 1], end: [1, 1] },
{ name: "topright", start: [1, 0], end: [1, 0] },
{ name: "footer", start: [0, 2], end: [1, 2] },
]}
>
Expand All @@ -325,6 +332,40 @@ class CaseContainer extends Component {
this.state.createItemType &&
this.state.createItemParentId &&
this.createLayer()}

<Box
gridArea="header"
pad={{
horizontal: "small",
top: "small",
bottom: "none",
}}
>
<Heading level={2}>{this.state.assurance_case.name}</Heading>
</Box>

<Box
direction="column"
pad={{
horizontal: "small",
top: "small",
bottom: "small",
}}
gridArea="topright"
>
<DropButton
label="Add Goal"
dropAlign={{ top: "bottom", right: "right" }}
dropContent={
<ItemCreator
type="TopLevelNormativeGoal"
parentId={this.state.id}
updateView={this.updateView.bind(this)}
/>
}
/>
</Box>

<Box
gridArea="main"
background={{
Expand All @@ -336,11 +377,6 @@ class CaseContainer extends Component {
repeat: "repeat-xy",
}}
>
{/* {this.Example()} */}
<Box width={"flex"} height={"30px"}>
{" "}
<h2> &nbsp;{this.state.assurance_case.name}</h2>{" "}
</Box>
<TransformWrapper initialScale={1} centerOnInit={true}>
{({ zoomIn, zoomOut, resetTransform, ...rest }) => (
<React.Fragment>
Expand Down Expand Up @@ -371,29 +407,7 @@ class CaseContainer extends Component {
)}
</TransformWrapper>
</Box>
{/* {{ color: "#ff0000" }} */}

<Box
direction="column"
pad="small"
gap="small"
gridArea="right"
background="light-2"
>
<CaseSelector />

<DropButton
label="Add Goal"
dropAlign={{ top: "bottom", right: "right" }}
dropContent={
<ItemCreator
type="TopLevelNormativeGoal"
parentId={this.state.id}
updateView={this.updateView.bind(this)}
/>
}
/>
</Box>
<Box gridArea="footer" background="light-5" pad="small">
&copy; credits
</Box>
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/components/CaseSelector.js
@@ -1,4 +1,4 @@
import { Box, Heading, Select } from "grommet";
import { Box, Select } from "grommet";
import React, { useState, useEffect } from "react";
import { useNavigate } from "react-router-dom";
import configData from "../config.json";
Expand Down Expand Up @@ -28,17 +28,17 @@ function CaseSelector() {
function handleChange(option) {
const id = option.value.id;
setValue(id);
navigate("/cases/" + id);
navigate("/case/" + id);
}

return (
<Box width="medium" className="dropdown">
<Heading level={4}>Select Assurance Case</Heading>
<Box className="dropdown">
<Select
disabled={loading}
placeholder="Select or create a case"
value={value}
onChange={handleChange}
options={items}
options={[{ name: "Create new case", id: "new" }, ...items]}
labelKey="name"
/>
</Box>
Expand Down
4 changes: 3 additions & 1 deletion frontend/src/components/Navigation.js
@@ -1,6 +1,7 @@
import { Box } from "grommet";
import React from "react";
import { NavLink } from "react-router-dom";
import CaseSelector from "./CaseSelector.js";

function Navigation() {
return (
Expand All @@ -10,7 +11,8 @@ function Navigation() {
<NavLink className="navbar-brand" to="/">
Ethical Assurance Platform
</NavLink>
<Box>
<Box gap="small" direction="row">
<CaseSelector />
<ul className="navbar-nav ml-auto">
<li className="nav-item">
<NavLink className="nav-link" to="/">
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/Routes.js
Expand Up @@ -12,7 +12,7 @@ const AllRoutes = () => (
<Route exact path="/" element={<Home />} />
<Route path="/case/new" element={<CaseCreator />} />
<Route path="/case/select" element={<CaseSelector />} />
<Route path="/cases">
<Route path="/case">
<Route path=":caseSlug" element={<CaseContainer />} />
</Route>
</Routes>
Expand Down

0 comments on commit e24699f

Please sign in to comment.