JSFiddle - React, Tailwind, and code Playground

by Gary Stubbenhagen

HTML

<input type="text" id="longURL" />
<input type="submit" id="track" />
<br />
<br />
<span id="displayURL"></span>

<input type="submit" id="shorten" value="Shorten URL" />
<br />
<br />

CSS

#shorten {
    display: none;
}

JavaScript

var $campaign = '?SOC|ATT2|ATT3|ATT4';
var $shortenButton = '<input type="submit" id="shorten" value="Shorten URL" />';
var $url = '';
var $urlLength = '';
var $lastChar = '';
var $http = '';
var $trackedURL = '';
var $encodedTrackedURL = '';
var $bitly = '';
var $accessToken = '';

$(document).ready(function () {
    $('#track').click(function () {
        if ($('#longURL').val() === '') {
            $('#displayURL').text('Please Enter URL');
        } else {

            $url = $('#longURL').val();
            $urlLength = $url.length;
            $lastChar = $url[$urlLength - 1];
            $http = $url[0] + $url[1] + $url[2] + $url[3];

            if ($http == 'http') {
                if ($lastChar == '/') {
                    $trackedURL = $url + $campaign;
                } else {
                    $trackedURL = $url + '/' + $campaign;
                }
            } else {
                if ($lastChar == '/') {
                    $trackedURL = 'http://' + $url + $campaign;
                } else {
                    $trackedURL = 'http://' + $url + '/' + $campaign;
                }
            }

            $('#displayURL').text($trackedURL);
            $('#shorten').toggle();
        }

    });

    $('#shorten').click(function () {
        $encodedTrackedURL = encodeURIComponent($trackedURL);
        var params = {
            access_token: $accessToken,
            longUrl: $encodedTrackedURL,
            format: 'json'
        };

        $.getJSON('https://api-ssl.bitly.com/v3/shorten', params, function (response, status_txt) {
            $('#displayURL').text(status_txt + ' ' + response.data.url);
        });
    });

});