@@ -2,13 +2,15 @@ import React, { PropTypes } from 'react'
22import linkState from 'boost/linkState'
33import { createFolder } from 'boost/actions'
44import store from 'boost/store'
5+ import FolderMark from 'boost/components/FolderMark'
56
67export default class CreateNewFolder extends React . Component {
78 constructor ( props ) {
89 super ( props )
910
1011 this . state = {
1112 name : '' ,
13+ color : Math . round ( Math . random ( ) * 7 ) ,
1214 alert : null
1315 }
1416 }
@@ -20,9 +22,11 @@ export default class CreateNewFolder extends React.Component {
2022 handleConfirmButton ( e ) {
2123 this . setState ( { alert : null } , ( ) => {
2224 let { close } = this . props
23- let name = this . state . name
25+ let { name, color } = this . state
26+
2427 let input = {
25- name
28+ name,
29+ color
2630 }
2731
2832 try {
@@ -38,13 +42,36 @@ export default class CreateNewFolder extends React.Component {
3842 } )
3943 }
4044
45+ handleColorClick ( colorIndex ) {
46+ return e => {
47+ this . setState ( {
48+ color : colorIndex
49+ } )
50+ }
51+ }
52+
4153 render ( ) {
4254 let alert = this . state . alert
4355 let alertElement = alert != null ? (
4456 < p className = { `alert ${ alert . type } ` } >
4557 { alert . message }
4658 </ p >
4759 ) : null
60+ let colorIndexes = [ ]
61+ for ( let i = 0 ; i < 8 ; i ++ ) {
62+ colorIndexes . push ( i )
63+ }
64+ let colorElements = colorIndexes . map ( index => {
65+ let className = index === this . state . color
66+ ? 'active'
67+ : null
68+
69+ return (
70+ < span className = 'option' key = { index } onClick = { e => this . handleColorClick ( index ) ( e ) } >
71+ < FolderMark className = { className } color = { index } />
72+ </ span >
73+ )
74+ } )
4875
4976 return (
5077 < div className = 'CreateNewFolder modal' >
@@ -53,6 +80,9 @@ export default class CreateNewFolder extends React.Component {
5380 < div className = 'title' > Create new folder</ div >
5481
5582 < input className = 'ipt' type = 'text' valueLink = { this . linkState ( 'name' ) } placeholder = 'Enter folder name' />
83+ < div className = 'colorSelect' >
84+ { colorElements }
85+ </ div >
5686 { alertElement }
5787
5888 < button onClick = { e => this . handleConfirmButton ( e ) } className = 'confirmBtn' > Create</ button >
0 commit comments