JSFiddle - React, Tailwind, and code Playground

HTML

<!-- Visualize: Destroy Session
  -->

<script type='text/javascript' src="https://mobiledemo.jaspersoft.com/jasperserver-pro/client/visualize.js"></script>
<button id="logout" disabled="true">Logout</button>
<select id="selected_resource" disabled="false" name="report">
	<option value="/public/Samples/Reports/AllAccounts">All Accounts (light)</option>
	<option value="/public/Samples/Reports/5g.AccountsReport">All Accounts (dark)</option>
	<option value="/public/Samples/Reports/SalesByMonthReport">Sales By Month Report (light)</option>
	<option value="/public/Samples/Reports/11g.SalesByMonthReport">Sales By Month Report (dark)</option>
	<option value="/public/Samples/Reports/ProfitDetailReport">Profit Detail Report (light)</option>
	<option value="/public/Samples/Reports/06g.ProfitDetailReport">Profit Detail Report (dark)</option>
	<option value="/public/Samples/Reports/9.CustomerDetailReport">Customer Detail Report (light)</option>
	<option value="/public/Samples/Reports/9g.CustomerDetailReport">Customer Detail Report (dark)</option>
	<option value="/public/Samples/Reports/State_Performance">Performance by Store Type (light) </option>
	<option value="/public/Samples/Reports/10g.PerformanceByStoreType">Performance By Store Type (dark) </option>
	<option value="/public/Samples/Reports/14.PerformanceSummary">Performance Summary</option>
</select>
<div id="App"></div>

CSS

.control {
    display: block;
}
.control.input.text > .wrap {
    display:block;
}
.control > input {
    width: 360px;
}
.error, .logout {
    color: red;
}
.success {
    color: green;
}
.message {
    display: none;
}

React

function RenderVisualize () {
  React.useEffect(function () {
visualize({
    auth: {
        name: "joeuser",
        password: "joeuser",
        organization: "organization_1",
        timezone: "Europe/Helsinki"
    }
}, function (v) {

    function createReport(uri) {
        v("#container").report({
            resource: uri,
            error: function (err) {
                alert(err.message);
            }
        });
    };
    
     //enable report chooser
    $(':disabled').prop('disabled', false);
    createReport($("#selected_resource").val());

    $("#selected_resource").change(function () {
        $("#container").html("");
        createReport($("#selected_resource").val());
    });

    //destroy session
    $("#logout").click(function () {
        v.logout().done(function () {
            alert("Destroy session");
        });
    });

});
  }, [])

  return (
    <div id="container"></div>
  )
}

ReactDOM.render(<RenderVisualize />, document.querySelector("#App"))