52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import * as React from "react";
|
|
import { Fragment } from "react";
|
|
import "./Navigation.scss";
|
|
import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink";
|
|
import NavbarChildLink from "../NavbarChildLink/NavbarChildLink";
|
|
import Icon from "../Icon";
|
|
import { IconType } from "../Icon/Icon";
|
|
|
|
export interface NavigationProps {
|
|
onMobileMenuOpen: () => void;
|
|
items: JSX.Element;
|
|
}
|
|
export interface NavigationState {
|
|
menuOpen: boolean;
|
|
}
|
|
|
|
class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
menuOpen: false
|
|
};
|
|
}
|
|
|
|
handleMobileMenuClick = () => {
|
|
const { onMobileMenuOpen } = this.props;
|
|
onMobileMenuOpen();
|
|
}
|
|
|
|
render() {
|
|
const { menuOpen } = this.state;
|
|
const { items } = this.props;
|
|
return (
|
|
<Fragment>
|
|
<div className="navigation">
|
|
{items}
|
|
<div className="navigation-some">
|
|
<Icon name={IconType.Facebook} link="https://www.facebook.com/AaltoYliopistonSIK/" />
|
|
<Icon name={IconType.Instagram} link="https://www.instagram.com/sahkoinsinoorikilta/" />
|
|
<Icon name={IconType.LinkedIn} link="https://www.linkedin.com/groups/8103057/" />
|
|
</div>
|
|
<div className="navigation-mobile">
|
|
<Icon name={IconType.HamburgerMenu} onClick={this.handleMobileMenuClick} />
|
|
</div>
|
|
</div>
|
|
</Fragment>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default Navigation;
|