39 lines
		
	
	
		
			850 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			850 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as React from 'react';
 | |
| import styled from 'styled-components';
 | |
| 
 | |
| import { ThemeInterface } from 'ts/components/siteWrap';
 | |
| import LogoIcon from 'ts/icons/logo-with-type.svg';
 | |
| 
 | |
| interface LogoInterface {
 | |
|     theme?: ThemeInterface;
 | |
| }
 | |
| 
 | |
| // Note let's refactor this
 | |
| // is it absolutely necessary to have a stateless component
 | |
| // to pass props down into the styled icon?
 | |
| const StyledLogo = styled.div`
 | |
|     text-align: left;
 | |
|     position: relative;
 | |
|     z-index: 25;
 | |
| 
 | |
|     @media (max-width: 800px) {
 | |
|         svg {
 | |
|             width: 60px;
 | |
|         }
 | |
|     }
 | |
| `;
 | |
| 
 | |
| const Icon = styled(LogoIcon)<LogoInterface>`
 | |
|     flex-shrink: 0;
 | |
| 
 | |
|     path {
 | |
|         fill: ${props => props.theme.textColor};
 | |
|     }
 | |
| `;
 | |
| 
 | |
| export const Logo: React.StatelessComponent<LogoInterface> = (props: LogoInterface) => (
 | |
|     <StyledLogo>
 | |
|         <Icon {...props} />
 | |
|     </StyledLogo>
 | |
| );
 |