이승윤

style: Dropdown 폼 변경(ul-li -> select)

1 -import React from 'react';
2 -import styled from 'styled-components';
3 -import { dropdownListColorMap } from '../../lib/styles/palette';
4 -
5 -const DropDownListBlock = styled.div`
6 - float: ${props => props.float || ''};
7 - width: ${props => props.size || '40%'};
8 -`;
9 -
10 -const DropDownList = styled.ul`
11 - padding: 0;
12 - margin: 0;
13 - background-color: ${props => dropdownListColorMap[props.color].background};
14 - border: 2px solid ${props => dropdownListColorMap[props.color].borderColor};
15 - box-sizing: border-box;
16 - color: ${props => dropdownListColorMap[props.color].color};
17 - font-size: 1.3rem;
18 - font-weight: 500;
19 - &:first-child {
20 - padding-top: 0.5em;
21 - }
22 -`;
23 -
24 -const ListItem = styled.li`
25 - list-style: none;
26 - padding-left: 1em;
27 - padding-bottom: 0.3em;
28 - border-bottom: 2px solid #e5e5e5;
29 -`;
30 -
31 -const DropDown = ({ children, color, float, size }) => {
32 - return (
33 - <DropDownListBlock color={color} float={float} size={size}>
34 - <DropDownList color={color}>
35 - <ListItem>{children}</ListItem>
36 - </DropDownList>
37 - </DropDownListBlock>
38 - );
39 -};
40 -
41 -export default DropDown;
...@@ -6,14 +6,14 @@ const DropDownBlock = styled.div` ...@@ -6,14 +6,14 @@ const DropDownBlock = styled.div`
6 margin: 0 auto; 6 margin: 0 auto;
7 float: ${props => props.float || ''}; 7 float: ${props => props.float || ''};
8 `; 8 `;
9 - 9 +const DropDownHeader = styled.select`
10 -const DropDownHeader = styled.button`
11 margin-bottom: 0.8em; 10 margin-bottom: 0.8em;
12 padding: 0.4em; 11 padding: 0.4em;
13 width: ${props => props.width || '100px'}; 12 width: ${props => props.width || '100px'};
14 - line-height: ${props => props.height || '30px'}; 13 + height: ${props => props.height || '30px'};
15 padding-right: 30px; 14 padding-right: 30px;
16 font-size: ${props => props.fontsize || '20px'}; 15 font-size: ${props => props.fontsize || '20px'};
16 + cursor: pointer;
17 color: ${props => dropdownHeaderColorMap[props.color].color}; 17 color: ${props => dropdownHeaderColorMap[props.color].color};
18 background-color: ${props => dropdownHeaderColorMap[props.color].background}; 18 background-color: ${props => dropdownHeaderColorMap[props.color].background};
19 &:hover { 19 &:hover {
...@@ -21,18 +21,37 @@ const DropDownHeader = styled.button` ...@@ -21,18 +21,37 @@ const DropDownHeader = styled.button`
21 dropdownHeaderColorMap[props.color].hoverBackground}; 21 dropdownHeaderColorMap[props.color].hoverBackground};
22 } 22 }
23 border: 1px ${props => dropdownHeaderColorMap[props.color].background}; 23 border: 1px ${props => dropdownHeaderColorMap[props.color].background};
24 +
25 + option {
26 + color: blue;
27 + background-color: blue;
28 + display: flex;
29 + white-space: pre;
30 + min-height: 20px;
31 + padding: 0px 2px 1px;
32 + }
24 `; 33 `;
25 34
26 -const DropDown = ({ children, float, color, fontsize, width, height }) => { 35 +const DropDown = ({
36 + options,
37 + float,
38 + color = 'blue',
39 + fontsize,
40 + width,
41 + height,
42 +}) => {
27 return ( 43 return (
28 <DropDownBlock float={float} color={color}> 44 <DropDownBlock float={float} color={color}>
29 <DropDownHeader 45 <DropDownHeader
46 + options={options}
30 color={color} 47 color={color}
31 fontsize={fontsize} 48 fontsize={fontsize}
32 width={width} 49 width={width}
33 height={height} 50 height={height}
34 > 51 >
35 - {children} 52 + {options.map(friend => (
53 + <option value={friend.id}>{friend.name}</option>
54 + ))}
36 </DropDownHeader> 55 </DropDownHeader>
37 </DropDownBlock> 56 </DropDownBlock>
38 ); 57 );
......