JSFiddle - React, Tailwind, and code Playground

HTML

<button id="abre-modal" type="button" class="btn btn-default">Abrir modal</button>

<div id="modal-default" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal" >
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModal"></h4>
      </div>
      <div class="modal-body">
      </div>
      <div class="modal-footer">
      </div>
    </div>
    </div>
</div>

JavaScript

function build_modal(opt) {
    var $this = $("#modal-default");

    if ( opt.is_small ) {
        $this.find(".modal-dialog").removeClass("modal-lg").addClass("modal-sm");
    } else if ( opt.is_large ) {
        $this.find(".modal-dialog").removeClass("modal-sm").addClass("modal-lg");
    } else {
        $this.find(".modal-dialog").removeClass("modal-sm").removeClass("modal-lg");
    }

    $this.find(".modal-title").html(opt.title);  
    $this.find(".modal-body").html(opt.body);

    var include_buttons = "";
    for ( var i in opt.buttons ) {
        include_buttons += '<button type="button" class="btn ' + opt.buttons[i].type + '" onclick="' + opt.buttons[i].onclick + '">';
        include_buttons += opt.buttons[i].text + '</button>';
    }

    if ( include_buttons != "" ) {
        $this.find(".modal-footer").css("display", "block").html(include_buttons);
    } else {
        $this.find(".modal-footer").css("display", "none");
    }

    $this.modal();
}

$(function () {
	var modal = {
        title: 'Teste do modal',
        is_large: true,
        body: '<p>O modal está em perfeito estado?</p>',
        buttons: [
            {
                text: "Não",
                type: "btn-danger",
                onclick: "reavaliar_metodo()"
            },
            {
                text: "Sim",
                type: "btn-success",
                onclick: "set_method_as_top()"
            }
        ]
    };
    
    $("#abre-modal").click(function() {
    	build_modal(modal);
    });
});