import React, { useMemo } from "react";
import { DrawControlColorOqt, DrawControlResetOqt, DrawControlUndoOqt, processOptions } from "../..";
/**
* Panel de controles del componente DrawOqt, que se mostrara debajo de la pizarra
*
* @name Reactor.Components.Input.DrawControlOqt
* @param {string} [colors = ""]
* Lista de colores disponibles, separados por espacio, Ej.: "black red yellow blue green"
* @param {BooleanString} [undo = "false"]
* Determina si se permite utilizar undo
* @param {BooleanString} [reset = "false"]
* Determina si se permite utilizar un reseteo del lienzo
* @param {JsonString?} div_options
* Propiedades del div raiz
* @param {BooleanString} [debug = "false"]
* Determina si se enviaran a la consola datos de depuración
* @param {HTMLElement?} children
* Body del componente, si no se pasa cuerpo,
* el componente genera un children a partir de las propiedades pasadas en colors, undo y reset
* @class
* @example
<draw name="firma" options='{"brushColor": "blue"}'>
<draw_control colors="#ffffff blue red black" undo="true" reset="true"></draw_control>
</draw>
*/
export const DrawControlOqt = ({colors = "", undo = "false", reset = "false", div_options, children}) => {
const colorList = useMemo(() => colors.split(" "), [colors]);
const options = useMemo(()=>{
return processOptions(div_options);
}, [div_options]);
return (
<>
<div className="draw-control" {...options}>
{(!children || children.length === 0) &&
<>
<div className="draw-control-color">
{
colorList.map(color => <DrawControlColorOqt color={color} div_options={{style: {backgroundColor: color}}}/>)
}
</div>
{undo === "true" && <DrawControlUndoOqt div_options={{className: "draw-control-button"}}/>}
{reset === "true" && <DrawControlResetOqt div_options={{className: "draw-control-button"}}/>}
</>
}
{children}
</div>
</>
)
}