11import React from 'react' ;
22import PropTypes from 'prop-types' ;
3- import imageDoneBlk from './ic_done_black_64dp_1x.png' ;
4- import imageDoneWht from './ic_done_white_64dp_1x.png' ;
3+ import { Done } from './done-black' ;
54const _colors = require ( './colors' ) ;
65
76const propTypes = {
@@ -41,12 +40,8 @@ export default class MaterialColorPicker extends React.Component {
4140 this . makeToneSwatches = this . makeToneSwatches . bind ( this ) ;
4241 this . makeGradeSwatches = this . makeGradeSwatches . bind ( this ) ;
4342
44- // this.toneSwatches = this.makeToneSwatches(this.toneNames);
45-
4643 this . initState = this . resetColor ( ) ;
4744 this . state = {
48- // selectedTone: initTone || this.toneNames[0],
49- // selectedSat: initSat || '500',
5045 ...this . initState ,
5146 hoveredTone : '' ,
5247 hoveredSat : '' ,
@@ -71,7 +66,7 @@ export default class MaterialColorPicker extends React.Component {
7166 }
7267
7368 onSubmit ( ) {
74- return ( e ) => {
69+ return e => {
7570 const event = {
7671 type : 'submit' ,
7772 timeStamp : e . nativeEvent . timeStamp ,
@@ -92,8 +87,7 @@ export default class MaterialColorPicker extends React.Component {
9287 }
9388
9489 onReset ( ) {
95- return ( e ) => {
96- // e.persist();
90+ return e => {
9791 const timeStamp = e . nativeEvent . timeStamp ;
9892 const nativeEvent = e . nativeEvent ;
9993 this . setState ( this . initState , ( ) => {
@@ -126,19 +120,16 @@ export default class MaterialColorPicker extends React.Component {
126120
127121 findColorName ( colObj , colString ) {
128122 const nameList = Object . keys ( colObj ) ;
129- const name = nameList . find ( ( val ) => { return ( colObj [ val ] === colString ) ; } ) ;
130- /* if (!colObj[name]) {
131- return 'white';
132- }*/
123+ const name = nameList . find ( val => {
124+ return colObj [ val ] === colString ;
125+ } ) ;
133126 return name ;
134127 }
135128
136129 resetColor ( ) {
137130 const initName = this . findColorName ( _colors , this . props . initColor ) || '' ;
138131 const initTone = this . toneColorByName ( initName ) ;
139132 const initSat = this . satColorByName ( initName ) ;
140- // console.info(initTone)
141- // console.info(initSat)
142133 const state = {
143134 selectedTone : initTone || this . toneNames [ 0 ] ,
144135 selectedSat : initSat || '500' ,
@@ -183,23 +174,16 @@ export default class MaterialColorPicker extends React.Component {
183174 blueGrey : nameList . filter ( val => / ^ b l u e G r e y / . test ( val ) ) ,
184175 grey : nameList . filter ( val => / ^ g r e y / . test ( val ) ) ,
185176 black : nameList . filter ( val => / b l a c k | w h i t e | B l a c k | W h i t e / . test ( val ) ) ,
186-
187177 } ;
188178
189179 return toneList ;
190- /*
191- const toneNames = Object.keys(toneList);
192- const allNames = toneNames.join(' ');
193- console.log(toneNames.length);
194- console.log(allNames);*/
195180 }
196181
197182 makeToneSwatches ( toneNames ) {
198- return (
199- toneNames . map ( ( val ) => {
200- let toneBaseName = this . baseToneByName ( val ) ;
201- const baseColor = _colors [ toneBaseName ] ;
202- return (
183+ return toneNames . map ( val => {
184+ let toneBaseName = this . baseToneByName ( val ) ;
185+ const baseColor = _colors [ toneBaseName ] ;
186+ return (
203187 < div
204188 key = { toneBaseName }
205189 title = { val }
@@ -213,17 +197,14 @@ export default class MaterialColorPicker extends React.Component {
213197 cursor : 'pointer' ,
214198 ...this . borderSelTone ( val , this . state . selectedTone , this . state . hoveredTone ) ,
215199 } }
216- >
217-
218- </ div >
200+ />
219201 ) ;
220- } )
221- ) ;
202+ } ) ;
222203 }
223204
224205 makeGradeSwatches ( toneName ) {
225206 const gradeNameList = this . colorNames [ toneName ] ;
226- const gradeSwatches = gradeNameList . map ( ( val ) => {
207+ const gradeSwatches = gradeNameList . map ( val => {
227208 return (
228209 < div
229210 key = { val }
@@ -232,16 +213,17 @@ export default class MaterialColorPicker extends React.Component {
232213 flexGrow : 1 ,
233214 width : '100%' ,
234215 cursor : 'pointer' ,
235- ...this . borderSelGrade ( this . satColorByName ( val ) ,
236- this . state . selectedSat , this . state . hoveredSat ) ,
216+ ...this . borderSelGrade (
217+ this . satColorByName ( val ) ,
218+ this . state . selectedSat ,
219+ this . state . hoveredSat
220+ ) ,
237221 } }
238222 onClick = { this . selectSat ( this . satColorByName ( val ) ) }
239223 onMouseEnter = { this . hoverSat ( this . satColorByName ( val ) ) }
240224 onMouseLeave = { this . hoverReset ( ) }
241225 >
242- < div
243- style = { { display : 'flex' , alignItems : 'center' , height : '100%' } }
244- >
226+ < div style = { { display : 'flex' , alignItems : 'center' , height : '100%' } } >
245227 < div
246228 style = { {
247229 width : 2 ,
@@ -250,18 +232,17 @@ export default class MaterialColorPicker extends React.Component {
250232 position : 'relative' ,
251233 margin : 'auto' ,
252234 transform : 'rotate(-90deg)' ,
253- // backgroundColor: 'white',
254235 } }
255236 >
256- < div style = { {
257- textAlign : 'center' ,
258- display : 'inline-block ' ,
259- // width : 'auto ',
260- left : '-50%' ,
261- top : - 6 ,
262- position : 'relative' ,
263- color : this . bwColorByName ( val ) ,
264- } }
237+ < div
238+ style = { {
239+ textAlign : 'center ' ,
240+ display : 'inline-block ' ,
241+ left : '-50%' ,
242+ top : - 6 ,
243+ position : 'relative' ,
244+ color : this . bwColorByName ( val ) ,
245+ } }
265246 >
266247 { this . blackShortName ( this . satColorByName ( val ) ) }
267248 </ div >
@@ -309,25 +290,21 @@ export default class MaterialColorPicker extends React.Component {
309290 }
310291
311292 selectTone ( toneName ) {
312- return ( e ) => {
293+ return e => {
313294 const event = this . createEvent ( e , 'select' ) ;
314- this . setState ( { selectedTone : toneName } ,
315- this . props . onSelect ( event )
316- ) ;
295+ this . setState ( { selectedTone : toneName } , this . props . onSelect ( event ) ) ;
317296 } ;
318297 }
319298
320299 selectSat ( satName ) {
321- return ( e ) => {
300+ return e => {
322301 const event = this . createEvent ( e , 'select' ) ;
323- this . setState ( { selectedSat : satName } ,
324- this . props . onSelect ( event )
325- ) ;
302+ this . setState ( { selectedSat : satName } , this . props . onSelect ( event ) ) ;
326303 } ;
327304 }
328305
329306 hoverTone ( toneName ) {
330- return ( e ) => {
307+ return e => {
331308 const { nativeEvent, persist } = e ;
332309 this . setState ( { hoveredTone : toneName } , ( ) => {
333310 const event = this . createEvent ( { nativeEvent, persist } , 'hover' ) ;
@@ -337,7 +314,7 @@ export default class MaterialColorPicker extends React.Component {
337314 }
338315
339316 hoverSat ( satName ) {
340- return ( e ) => {
317+ return e => {
341318 const { nativeEvent, persist } = e ;
342319 this . setState ( { hoveredSat : satName } , ( ) => {
343320 const event = this . createEvent ( { nativeEvent, persist } , 'hover' ) ;
@@ -347,7 +324,7 @@ export default class MaterialColorPicker extends React.Component {
347324 }
348325
349326 hoverReset ( ) {
350- return ( e ) => {
327+ return e => {
351328 const { nativeEvent, persist } = e ;
352329 this . setState ( { hoveredTone : '' , hoveredSat : '' } , ( ) => {
353330 const event = this . createEvent ( { nativeEvent, persist } , 'hover' ) ;
@@ -366,8 +343,9 @@ export default class MaterialColorPicker extends React.Component {
366343
367344 toneColorByName ( colorName ) {
368345 const satName = this . satColorByName ( colorName ) ;
369- const toneName = / b l a c k | w h i t e | B l a c k | W h i t e / . test ( satName ) ? 'black' :
370- colorName . replace ( satName , '' ) ;
346+ const toneName = / b l a c k | w h i t e | B l a c k | W h i t e / . test ( satName )
347+ ? 'black'
348+ : colorName . replace ( satName , '' ) ;
371349 return toneName ;
372350 }
373351
@@ -411,11 +389,8 @@ export default class MaterialColorPicker extends React.Component {
411389 const satString = this . state . hoveredSat || this . state . selectedSat ;
412390 if ( toneString === 'black' ) {
413391 toneString = '' ;
414- // if(!/black|white/.test(satString)) {
415- // satString = 'black';
416- // }
417392 }
418- return ( `${ toneString } ${ satString } ` ) ;
393+ return `${ toneString } ${ satString } ` ;
419394 }
420395
421396 titleName ( isBlack ) {
@@ -425,25 +400,23 @@ export default class MaterialColorPicker extends React.Component {
425400 let satString = this . state . hoveredSat || this . state . selectedSat ;
426401 if ( toneString === 'black' ) {
427402 toneString = '' ;
428- // if(!/black|white/.test(satString)) {
429- // satString = 'black';
430- // }
431403 }
432- const isHovTone = ! ( this . state . hoveredTone === this . state . selectedTone )
433- && ( this . state . hoveredTone ) ;
434- const isHovSat = ! ( this . state . hoveredSat === this . state . selectedSat )
435- && ( this . state . hoveredSat ) ;
404+ const isHovTone =
405+ ! ( this . state . hoveredTone === this . state . selectedTone ) && this . state . hoveredTone ;
406+ const isHovSat =
407+ ! ( this . state . hoveredSat === this . state . selectedSat ) && this . state . hoveredSat ;
436408 const toneColor = isHovTone ? greyColor : baseColor ;
437409 const satColor = isHovSat ? greyColor : baseColor ;
438410 return (
439411 < div >
440- < span style = { { color : toneColor , fontWeight : isHovTone ? '' : 'bold' } } >
412+ < span style = { { color : toneColor , fontWeight : isHovTone ? '' : 'bold' } } >
441413 { toneString }
442414 </ span >
443- < span style = { { color : satColor , fontWeight : isHovSat ? '' : 'bold' } } >
415+ < span style = { { color : satColor , fontWeight : isHovSat ? '' : 'bold' } } >
444416 { satString }
445417 </ span >
446- </ div > ) ;
418+ </ div >
419+ ) ;
447420 }
448421
449422 createEvent ( e , type ) {
@@ -484,15 +457,12 @@ export default class MaterialColorPicker extends React.Component {
484457 < div
485458 className = "material-color-picker-tone-swatches"
486459 style = { {
487- // padding: 5,
488- // width: '100%',
489460 display : 'flex' ,
490- flexDirection : 'row' /* 'column'*/ ,
461+ flexDirection : 'row' ,
491462 justifyContent : 'space-between' ,
492463 } }
493464 >
494465 { this . makeToneSwatches ( this . toneNames ) }
495-
496466 </ div >
497467 < div
498468 className = "material-color-picker-title"
@@ -506,20 +476,13 @@ export default class MaterialColorPicker extends React.Component {
506476 justifyContent : 'space-between' ,
507477 } }
508478 >
509- { /* <span style={{color: 'white'}} >{this.state.selectedTone + 's'}</span>
510- <span style={{color: 'black'}} >{this.state.selectedTone + 's'}</span>*/ }
511479 { this . titleName ( false ) }
512480 { this . titleName ( true ) }
513481 </ div >
514482 < div
515483 style = { {
516484 marginTop : 5 ,
517- // padding: 5,
518- // paddingLeft: 0,
519- // paddingRight: 25,
520- // backgroundColor: _colors[this.baseToneByName(this.state.selectedTone)],
521485 display : 'flex' ,
522- // justifyContent: 'space-between',
523486 } }
524487 >
525488 < div
@@ -530,22 +493,14 @@ export default class MaterialColorPicker extends React.Component {
530493 backgroundColor : _colors [ this . fullNameString ( ) ] ,
531494 } }
532495 >
533- { this . state . hoveredSubmit ?
534- < img
535- src = {
536- this . bwColorByName ( this . fullNameString ( ) ) === 'black' ?
537- imageDoneBlk : imageDoneWht }
538- style = { { opacity : 0.4 } }
539- alt = "submit"
540- /> : null
541- }
542-
496+ { this . state . hoveredSubmit ? (
497+ < Done color = { this . bwColorByName ( this . fullNameString ( ) ) } />
498+ ) : null }
543499 </ div >
544500
545501 < div
546502 className = "material-color-picker-sat-swatches"
547503 style = { {
548- // height: 60,
549504 flexGrow : 1 ,
550505 width : 278 ,
551506 marginLeft : 5 ,
@@ -554,7 +509,6 @@ export default class MaterialColorPicker extends React.Component {
554509 >
555510 { this . makeGradeSwatches ( this . state . selectedTone ) }
556511 </ div >
557-
558512 </ div >
559513 < div
560514 style = { {
@@ -570,13 +524,14 @@ export default class MaterialColorPicker extends React.Component {
570524 color : '#404040' ,
571525 } }
572526 >
573- < div style = { {
574- width : 'auto' ,
575- // display: 'flex',
576- // flexWrap: 'wrap',
577- } }
527+ < div
528+ style = { {
529+ width : 'auto' ,
530+ } }
578531 >
579- < b > < nobr > { _colors [ this . fullNameString ( ) ] } </ nobr > </ b >
532+ < b >
533+ < nobr > { _colors [ this . fullNameString ( ) ] } </ nobr >
534+ </ b >
580535 </ div >
581536 < div
582537 style = { {
@@ -613,14 +568,10 @@ export default class MaterialColorPicker extends React.Component {
613568 { this . props . submitLabel }
614569 </ div >
615570 </ div >
616- { /*
617- <span style={{color: 'white'}} >{_colors[this.fullNameString()]}</span>
618- <span style={{color: 'black'}} >{_colors[this.fullNameString()]}</span>*/ }
619571 </ div >
620572 </ div >
621573 ) ;
622574 }
623-
624575}
625576
626577MaterialColorPicker . propTypes = propTypes ;
0 commit comments