import * as React from "react" import styled, { css, injectGlobal } from "styled-components" import * as ui from "../../.." import withLink from "../withLink" // tslint:disable-next-line:no-unused-expression injectGlobal` @keyframes menuIn { from { opacity: 0; transform: translate(-13px, 0); } to { opacity: 1; transform: translate(0, 0); } } .menuIn { animation-name: menuIn; animation-duration: 0.343s; animation-fill-mode: both; } ` const MenuItemContainer = styled.div` margin-bottom: 5px; font-size: 1.3rem; display: flex; align-items: center; padding: 8px 0 8px 20px; a { text-decoration: none; } cursor: pointer; &:hover { opacity: 0.6; background: ${(props) => props.theme.matteWhite}; } ` const MenuActiveStyle = css` padding-left: 15px; border-left-width: 5px; border-left-style: solid; border-left-color: ${(props) => props.theme.pumpkin}; color: ${(props) => props.theme.pumpkin}; ` const delayStyle = css` animation-delay: ${(props: any) => props.delay || 0.222}s; ` const MenuItemContainerWithActive = styled(MenuItemContainer) ` opacity:0; ${(props: any) => props.active ? MenuActiveStyle : ""} ${delayStyle} ` as any const IconActive = css` &:after { color: ${(props) => props.theme.pumpkin}; } ` const Icon = styled(ui.Icon) ` margin-right: 10px; ${(props: any) => props.active ? IconActive : ""} ` const Title = styled.div` color: ${(props: any) => !props.active ? props.theme.matteBlack : props.theme.pumpkin}; font-weight: ${(props: any) => props.active ? "800" : "600"}; ` as any // tslint:disable-next-line:max-line-length export default withLink(({ active, iconName, style, title, Link, href, className, delay }: { delay?: any, className?: any, active: boolean, iconName: any, style?: any, title: string, href: string, Link: any }) => { return ( {typeof iconName === "string" ? : iconName } {title} ) })