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 *
{ /* Perfil */ }
{ /* 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)