import React, { Component, } from 'react' import { withRouter, } from 'react-router-dom' import { Row, Col, Tooltip, OverlayTrigger, Form, } from 'react-bootstrap' import Select from 'react-select' import Modal from 'react-modal' import { TwitterPicker, SketchPicker } from 'react-color'; const renderTooltipColors = (props) => ( Haz click para cambiar de modo. ); const customStyles = { content : {top: '50%',left: '50%',right: 'auto',bottom: 'auto',marginRight: '-50%',transform: 'translate(-50%, -50%)',width: 'auto',height: 'auto',} }; const customStylesSelect = { control: styles => ({ ...styles, backgroundColor: '#fff', width: '90%', margin: '0 auto', marginBottom: 20, }), } class DisenoPage extends Component { constructor(props) { super(props); this.state = { arrColorsSug: [], colorSelected: '', isOpenSelectColor: false, primaryColorPicker: 1, secundaryColorPicker: 1 } this.onSubmit = this.onSubmit.bind(this); this.onAddColorSug = this.onAddColorSug.bind(this); } componentDidMount() { } onSubmit() { } removeImageInput(input,array) { let {arrDatos,showRemoveButton} = this.props.initState document.getElementById(input).value = "" if(input=="upload-file-fondo") arrDatos.diseno.portada = '' if(input=="upload-file-logo") arrDatos.diseno.logo = '' showRemoveButton[array] = 'none' console.log(showRemoveButton) } onFileChange(opt, file) { if(file.target.files.length === 0) return false let { arrDatos,showRemoveButton,arrCheck } = this.props.initState const imgURL = URL.createObjectURL( file.target.files[0] ) if(opt === 'perfil') { arrDatos.diseno.perfil = imgURL arrCheck[1].checkMark = true; arrDatos.diseno.files_perfil = file.target.files[0] } else if(opt === 'logo') { showRemoveButton[2] = 'block'; this.setState({ arrColorsSug: [] }) let $this = this arrDatos.diseno.logo = imgURL arrDatos.diseno.files_logo = file.target.files[0] let img = document.createElement('img') img.setAttribute('src', imgURL ) img.addEventListener('load', function() { let vibrant = new window.Vibrant(img) let swatches = vibrant.swatches() for (let swatch in swatches) { if (swatches.hasOwnProperty(swatch) && swatches[swatch]) { $this.onAddColorSug(swatches[swatch].getHex()) } } }); }else if(opt == 'fondo') { showRemoveButton[1] = 'block'; arrDatos.diseno.portada = imgURL; arrDatos.diseno.files_portada = file.target.files[0] } this.initsetState({ arrDatos }) } onAddColorSug(hex) { this.setState({ arrColorsSug: this.state.arrColorsSug.concat( hex ) }) } onSelectColorSug(color, opt, selected) { if(opt === 1) this.setState({ isOpenSelectColor: true, colorSelected: color, }) else { this.setState({ isOpenSelectColor: false, colorSelected: color, }) if(selected === 1) this.initsetState({ primaryColor: this.state.colorSelected }); else this.initsetState({ secundaryColor: this.state.colorSelected }); } } render() { const { arrColorsSug, isOpenSelectColor, primaryColorPicker, secundaryColorPicker, } = this.state let { arrDatos, checkedSecundaryColor, checkedTextColor,showRemoveButton,primaryColor,secundaryColor } = this.props.initState return (
{ /* Seleccionar tema */ }

Seleccionar tema *

this.onFileChange('perfil', file)} />

Medida recomendada 800x800px

{/*Imagen de Fondo*/}

Fondo *

{'Placeholder'}

Medida 1280x800px

{/* LOGO */}

Logo *

{'Placeholder'}

Medida 400x40px

{ arrColorsSug.length > 0 ? (

Colores sugeridos

*Los siguientes colores son obtenidos de tu logo, te sugerimos que los utilices para personalizar tu tarjeta.

{arrColorsSug.map((t,e) => ( { this.onSelectColorSug(t, 1) }} style={{background: t}}> ))}
) : null }

{ /* Selector de colores */ }

Color principal

{ this.setState({ primaryColorPicker: primaryColorPicker === 1 ? 2 : 1 }) } }>Modo { primaryColorPicker === 1 ? 'básico' : 'profesional' }

{ primaryColorPicker === 1 ? ( { this.initsetState({ primaryColor: color.hex }) } } /> ) : ( { this.initsetState({ primaryColor: color.hex }) } } /> ) } { checkedSecundaryColor ? ( <>

Color secundario

{ this.setState({ secundaryColorPicker: secundaryColorPicker === 1 ? 2 : 1 }) } }>Modo { secundaryColorPicker === 1 ? 'básico' : 'profesional' }

{ secundaryColorPicker === 1 ? ( { this.initsetState({ secundaryColor: color.hex }) } } /> ) : ( { this.initsetState({ secundaryColor: color.hex }) } } /> ) } ) : null }
{ secundaryColor = (checkedSecundaryColor) ? primaryColor : secundaryColor ; this.initsetState({ checkedSecundaryColor: !checkedSecundaryColor, secundaryColor}) } } />
{ this.initsetState({ checkedTextColor: !checkedTextColor }) }} />
{ this.setState({isOpenSelectColor: false}) }} style={customStyles} contentLabel="Elegir color" >
Aplicar en

{ this.onSelectColorSug('', 2, 1) }}>Color primario

{ this.onSelectColorSug('', 2, 2) }}>Color secundario

); } initsetState(param) { this.props.initsetState(param) return true } }; export default withRouter(DisenoPage)