51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as _ from 'lodash';
 | |
| import * as React from 'react';
 | |
| import styled from 'styled-components';
 | |
| 
 | |
| import { media } from 'ts/variables';
 | |
| 
 | |
| const StyledList = styled.ul`
 | |
|     list-style-type: none;
 | |
|     margin: 0;
 | |
|     padding: 0;
 | |
|     position: relative;
 | |
| `;
 | |
| 
 | |
| const StyledItem = styled.li`
 | |
|     position: relative;
 | |
|     padding-left: 1.625rem;
 | |
| 
 | |
|     :before {
 | |
|         content: '';
 | |
|         border: 1px solid black;
 | |
|         width: 0.625rem;
 | |
|         height: 0.625rem;
 | |
|         display: inline-block;
 | |
|         position: absolute;
 | |
|         margin-top: 2px;
 | |
|         top: 0.3125rem;
 | |
|         left: 0;
 | |
|         transform: rotate(45deg);
 | |
|     }
 | |
|     :not(:last-child) {
 | |
|         margin-bottom: 0.5625rem;
 | |
|         ${media.small`
 | |
|             margin-bottom: 0.375rem;
 | |
|         `};
 | |
|     }
 | |
| `;
 | |
| 
 | |
| interface ListProps {
 | |
|     items?: [];
 | |
| }
 | |
| 
 | |
| const List: React.StatelessComponent<ListProps> = props => (
 | |
|     <StyledList>
 | |
|         {props.children !== undefined
 | |
|             ? props.children
 | |
|             : _.map(props.items, (bullet, index) => <StyledItem key={index}>{bullet}</StyledItem>)}
 | |
|     </StyledList>
 | |
| );
 | |
| 
 | |
| export { List, StyledItem as ListItem };
 |