JSFiddle - React, Tailwind, and code Playground

HTML

<div id="container">

</div>

<button onclick="foo()">Append image</button>

JavaScript

function foo()
{
			var circle = getStateCircle("opened");
      
      
      var dataUrl = circle.toDataURL("image/png");
      
      var img = document.createElement("img");
      img.setAttribute("height", "20px");
      
      img.style.height = "20px";
      
      img.src = dataUrl;
      document.getElementById("container").appendChild(circle);
}



function getStateCircle(state)
{
                var stateCircle;

                if(state === "opened")
                {
                    stateCircle = new Circle("#ffcc00", "20");
                }

                else if(state === "accepted")
                {
                    stateCircle = new Circle("#33cc33", "20");
                }

                else if (state === "refused")
                {
                    stateCircle = new Circle("#ff3300", "20");
                }

                else if (state === "closed")
                {
                    stateCircle = new Circle("black", "20");
                }

                else
                {
                    throw new Error("The state of the offer is unknown");
                }
                    
                stateCircle.buildCircle();
                var circle = stateCircle.getCircle();
                

                return circle;
}

function Circle(color, size)
{
    this._color = color;
    this._size = size;

    this._circle;

    this.buildCircle = function()
    {
        

        this._circle = new ElementBuilder("canvas").withStyle("margin-bottom", "0px !important").getElement();
        var context = this._circle.getContext("2d")
       	context.strokeStyle = this._color;
        context.beginPath();
        context.arc(this._size,this._size,this._size,0,2*Math.PI);
        context.stroke();
        context.fillStyle = this._color;
        context.fill();
        
    }

    this.buildCircleAndAppendTo = function(father)
    {
        this._buildCircle();
        father.appendChild(this._circle);
    }

 ...