Skip to content

Commit

Permalink
Merge branch 'boc'
Browse files Browse the repository at this point in the history
  • Loading branch information
ocordsen committed Feb 2, 2018
2 parents 7f75ee0 + ecf06d8 commit 1009b65
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 10 deletions.
2 changes: 1 addition & 1 deletion components/app/app.less
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

> .content-component {
flex: 1 1 0;
background-color: #333;
background-color: #eee;
}
}
}
30 changes: 27 additions & 3 deletions components/app/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,39 @@ import {HeaderComponent} from "../header/header";
import {SidebarComponent} from "../sidebar/sidebar";
import {ContentComponent} from "../content/content";

export class AppComponent extends React.Component {
interface Props {

}

interface State {
readonly selectedNavigationItem: string;
}

export class AppComponent extends React.Component<Props, State> {
constructor(props: Props) {
super(props);

this.state = {
selectedNavigationItem: ""
};
}

render() {
const {selectedNavigationItem} = this.state;

const selectNavigationItem = (navigationItem: string) => {
this.setState({
selectedNavigationItem: navigationItem
});
};

return (
<div className="app-component">
<HeaderComponent/>

<div className="container">
<SidebarComponent/>
<ContentComponent/>
<SidebarComponent selectNavigationItem={selectNavigationItem}/>
<ContentComponent selectedNavigationItem={selectedNavigationItem}/>
</div>
</div>
);
Expand Down
3 changes: 2 additions & 1 deletion components/components.less
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
@import "./app/app";
@import "./app/app";
@import "./sidebar/sidebar";
21 changes: 19 additions & 2 deletions components/content/content.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
import * as React from "react";

export class ContentComponent extends React.Component {
interface Props {
readonly selectedNavigationItem: string;
}

export class ContentComponent extends React.Component<Props> {
render() {
return <div className="content-component"></div>;
return (
<div className="content-component">
{this.renderContent(this.props.selectedNavigationItem)}
</div>
);
}

private renderContent = (navigationItem: string) => {
switch (navigationItem) {
case "Übersicht":
return <div>Übersicht</div>;
default:
return <div>Alles andere</div>;
}
};
}
7 changes: 7 additions & 0 deletions components/sidebar/sidebar.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.sidebar-component {
button {
display: block;
margin-top: 10px;
background-color: transparent;
}
}
26 changes: 23 additions & 3 deletions components/sidebar/sidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@
import * as React from "react";

export class SidebarComponent extends React.Component {
interface Props {
readonly selectNavigationItem: (navigationItem: string) => void;
}

interface State {

}

export class SidebarComponent extends React.Component<Props, State> {
render() {
return <aside className="sidebar-component"></aside>;
const selectNavigationItem = this.props.selectNavigationItem;

return (
<aside className="sidebar-component">
{navigationItems.map(navigationItem =>
<button key={navigationItem}
onClick={() => selectNavigationItem(navigationItem)}>{navigationItem}</button>)}
</aside>
);
}
}
}

const navigationItems = [
"Übersicht", "Disposition", "Meldungen"
];

0 comments on commit 1009b65

Please sign in to comment.