|  | 
| 1 | 1 | import React, {Component} from 'react'; | 
|  | 2 | +import CreatePaletteNavBar from './CreatePaletteNavBar'; | 
| 2 | 3 | import classNames from 'clsx'; | 
| 3 | 4 | import { withStyles } from '@material-ui/core/styles'; | 
| 4 | 5 | import Drawer from '@material-ui/core/Drawer'; | 
| 5 |  | -import CssBaseline from '@material-ui/core/CssBaseline'; | 
| 6 |  | -import AppBar from '@material-ui/core/AppBar'; | 
| 7 |  | -import Toolbar from '@material-ui/core/Toolbar'; | 
| 8 |  | -import Typography from '@material-ui/core/Typography'; | 
| 9 | 6 | import Divider from '@material-ui/core/Divider'; | 
| 10 | 7 | import IconButton from '@material-ui/core/IconButton'; | 
| 11 |  | -import MenuIcon from '@material-ui/icons/Menu'; | 
| 12 | 8 | import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'; | 
| 13 | 9 | import Button from '@material-ui/core/Button'; | 
| 14 |  | -import DraggableColorBoxes from './DraggableColorBoxes'; | 
| 15 | 10 | import { ChromePicker } from 'react-color';		/*Color Picker*/ | 
| 16 | 11 | import { ValidatorForm, TextValidator} from 'react-material-ui-form-validator'; | 
| 17 | 12 | import DraggableColorList from './DraggableColorList'; | 
| @@ -84,8 +79,7 @@ class CreatePalette extends Component{ | 
| 84 | 79 | 			open: true, | 
| 85 | 80 | 			currentColor: "teal", | 
| 86 | 81 | 			newColorName: "", | 
| 87 |  | -			colors: this.props.palettes[0].colors, | 
| 88 |  | -			newPaletteName: "" | 
|  | 82 | +			colors: this.props.palettes[0].colors | 
| 89 | 83 | 		} | 
| 90 | 84 | 		this.handleDrawerOpen = this.handleDrawerOpen.bind(this); | 
| 91 | 85 | 		this.handleDrawerClose = this.handleDrawerClose.bind(this); | 
| @@ -130,14 +124,8 @@ class CreatePalette extends Component{ | 
| 130 | 124 |  	({color}) => color !== this.state.currentColor | 
| 131 | 125 |  ); | 
| 132 | 126 |  }); | 
| 133 |  | - ValidatorForm.addValidationRule('isPaletteNameUnique', (value) => { | 
| 134 |  | - return this.props.palettes.every( | 
| 135 |  | - 	({paletteName}) => paletteName.toLowerCase() !== value.toLowerCase() | 
| 136 |  | - ); | 
| 137 |  | - }); | 
| 138 | 127 |  }; | 
| 139 |  | - savePalette(){ | 
| 140 |  | - 	let newPaletteName = this.state.newPaletteName; | 
|  | 128 | + savePalette(newPaletteName){ | 
| 141 | 129 |  	const newPalette = { | 
| 142 | 130 |  		id: newPaletteName.toLowerCase().replace(//g, '-'), | 
| 143 | 131 |  		paletteName: newPaletteName, | 
| @@ -167,47 +155,21 @@ class CreatePalette extends Component{ | 
| 167 | 155 | 		this.setState({colors: [...this.state.colors, randomColor]}); | 
| 168 | 156 | 	} | 
| 169 | 157 |  render() { | 
| 170 |  | - const { classes, theme, maxColors} = this.props; | 
|  | 158 | + const { classes, theme, maxColors, palettes} = this.props; | 
| 171 | 159 |  const { open, colors } = this.state; | 
| 172 | 160 |  const paletteFull = colors.length >= maxColors; | 
| 173 | 161 |  return ( | 
| 174 | 162 |  <div className={classes.root}> | 
| 175 |  | - <CssBaseline /> | 
| 176 |  | - <AppBar | 
| 177 |  | - position="fixed" | 
| 178 |  | - color="default" | 
| 179 |  | - className={classNames(classes.appBar, { | 
| 180 |  | - [classes.appBarShift]: open, | 
| 181 |  | - })} | 
| 182 |  | - > | 
| 183 |  | - <Toolbar disableGutters={!open}> | 
| 184 |  | - <IconButton | 
| 185 |  | - color="inherit" | 
| 186 |  | - aria-label="Open drawer" | 
| 187 |  | - onClick={this.handleDrawerOpen} | 
| 188 |  | - className={classNames(classes.menuButton, open && classes.hide)} | 
| 189 |  | - > | 
| 190 |  | - <MenuIcon /> | 
| 191 |  | - </IconButton> | 
| 192 |  | - <Typography variant="h6" color="inherit" noWrap> | 
| 193 |  | - Persistent drawer | 
| 194 |  | - </Typography> | 
|  | 163 | + 	{/*NavBar*/} | 
|  | 164 | + <CreatePaletteNavBar  | 
|  | 165 | + 	open={open}  | 
|  | 166 | + 	classes={classes} | 
|  | 167 | + 	palettes={palettes} | 
|  | 168 | + 	handleDrawerOpen={this.handleDrawerOpen} | 
|  | 169 | + 	savePalette={this.savePalette} | 
|  | 170 | + /> | 
|  | 171 | + 	{/*NavBar Ends*/} | 
| 195 | 172 | 
 | 
| 196 |  | - <ValidatorForm onSubmit={this.savePalette}> | 
| 197 |  | -	 <TextValidator  | 
| 198 |  | -	 	label="Palette Name"  | 
| 199 |  | -	 	value={this.state.newPaletteName} | 
| 200 |  | -	 	name="newPaletteName"  | 
| 201 |  | -	 	onChange={this.handleNameChange} | 
| 202 |  | -	 	validators={['required', 'isPaletteNameUnique']} | 
| 203 |  | - errorMessages={['Enter a Color Name', 'Palette Name already exist!']} | 
| 204 |  | -	 /> | 
| 205 |  | -	 <Button variant="contained" color="primary" type="submit"> | 
| 206 |  | -	 	Save Palette | 
| 207 |  | -	 </Button> | 
| 208 |  | - </ValidatorForm> | 
| 209 |  | - </Toolbar> | 
| 210 |  | - </AppBar> | 
| 211 | 173 |  <Drawer | 
| 212 | 174 |  className={classes.drawer} | 
| 213 | 175 |  variant="persistent" | 
|  | 
0 commit comments