zepio/app/components/Sidebar.js

45 lines
855 B
JavaScript
Raw Normal View History

// @flow
import React from 'react';
import styled from 'styled-components';
import { Link } from 'react-router-dom';
import { MENU_OPTIONS } from '../constants/sidebar';
2018-11-26 18:52:47 -08:00
const Wrapper = styled.div`
display: flex;
flex-direction: column;
width: 200px;
position: absolute;
left: 0;
top: 0;
height: 100vh;
2018-11-28 17:54:08 -08:00
background-color: ${props => props.theme.colors.secondary};
`;
const StyledLink = styled(Link)`
color: ${props => props.theme.colors.primary};
2018-11-26 18:52:47 -08:00
`;
type MenuItem = {
route: string,
label: string,
};
2018-11-26 18:52:47 -08:00
type Props = {
options?: MenuItem[],
};
export const SidebarComponent = ({ options }: Props) => (
<Wrapper>
2018-11-26 18:52:47 -08:00
{(options || []).map(item => (
<StyledLink key={item.route} to={item.route}>
{item.label}
</StyledLink>
))}
</Wrapper>
);
2018-11-26 18:52:47 -08:00
SidebarComponent.defaultProps = {
options: MENU_OPTIONS,
};