import React from 'react' import styled from 'styled-components' import { Link as GatsbyLink } from 'gatsby' import { NavbarTheme } from '../../theme' const InternalLink = styled(GatsbyLink)` text-decoration: none; padding: 0 20px; flex: 1; align-items: center; justify-content: center; display: flex; color: ${(props) => props.dropdownMode ? '#000000' : props.theme.textColor}; &:hover { color: ${(props) => props.dropdownMode ? 'var(--amplify-primary-color)' : props.theme.textHoverColor}; } ` const LinkText = styled.span` color: inherit; ` const Item = styled.li` display: flex; white-space: nowrap; cursor: pointer; border-bottom: 0 solid ${(props) => props.theme.textHoverColor}; transition: border-bottom 100ms ease-out; box-sizing: content-box; ${({ dropdownMode }) => dropdownMode && 'flex: 1; height: 100%;'} &:hover { ${(props) => !props.dropdownMode && `border-bottom: ${props.borderHeight}px solid ${props.theme.textHoverColor}`}; } ` const ExternalLink = styled.a` text-decoration: none; padding: 0 20px; flex: 1; align-items: center; justify-content: center; display: flex; color: ${(props) => props.dropdownMode ? '#000000' : props.theme.textColor}; &:hover { color: ${(props) => props.dropdownMode ? 'var(--amplify-primary-color)' : props.theme.textHoverColor}; } ` type HeaderLinkProps = { theme: NavbarTheme to: string content: string isExternal?: boolean navBarHeight: number dropdownMode: boolean } const HeaderLink = ({ to, content, isExternal, theme, navBarHeight, navBarMinHeight, dropdownMode, }: HeaderLinkProps) => { const borderHeight = (navBarHeight - navBarMinHeight) / 8 + 2 if (isExternal) return ( {content} ) return ( {content} ) } export default HeaderLink