JSFiddle - React, Tailwind, and code Playground

by Walter Rumsby

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- 
  Bootstrap docs: https://getbootstrap.com/docs
-->
<form id="branch-form">
  <div class="container">
    <div class="form-group">
      <label for="branchName">Branch Name</label>
      <input type="text" class="form-control" id="branchName" aria-describedby="branchHelp" placeholder="Enter branch name">
      <small id="branchHelp" class="form-text text-muted">e.g. <code>wrumsby/ch4622/clean-up-upload-error</code></small>
    </div>
    <div class="btn-group" role="group">
      <button type="submit" class="btn">Web App</button>
      <button type="submit" class="btn btn-secondary">Review</button>
      <button type="submit" class="btn btn-secondary">Account</button>
      <button type="submit" class="btn btn-secondary">Matrix</button>
      <button type="submit" class="btn btn-secondary">Dashboard</button>
    </div>
  </div>
</form>

CSS

.row {
  background: #f8f9fa;
  margin-top: 20px;
}

.col {
  border: solid 1px #6c757d;
  padding: 10px;
}

JavaScript

var formEl = document.getElementById('branch-form');
var app = 'webapp';

var buttons = document.querySelectorAll('button');

buttons.forEach(function (button) {
	button.addEventListener('click', function (e) {
		var target = e.target;
  
		app = target.innerText.toLowerCase().replace(' ', '');
	});
});

formEl.addEventListener('submit', function (e) {
	e.preventDefault();
  
  var fieldEl = document.getElementById('branchName');
  var fieldValue = fieldEl.value.trim();
  
  if (fieldValue !== '') {
  	var prBranch = fieldValue.replace(/\//g, '-');
  	var url = 'https://s3.con.qa/' + app + '/' + prBranch + '/'; 

		if (app === 'matrix') {
      url = 'https://s3.con.qa/matrix/' + prBranch + '/50159d58-5f9b-4994-b790-034d8a883ff8/d3c210c4-6654-4f5e-a701-7da93a928658';
    }
    
    var tab = window.open(url, '_blank');
    tab.focus();
  }
});