JSFiddle - React, Tailwind, and code Playground
by SwampFall
JavaScript
var CLIENT_ID = '638904102829-f88oril6gn7np82807r3b5uejtc049fi.apps.googleusercontent.com';
var API_KEY = 'AIzaSyCdnqaPvkOup1VHvCFvisj709yFnnH1V0k';
// Array of API discovery doc URLs for APIs used by the quickstart
var DISCOVERY_DOCS = ["https://sheets.googleapis.com/$discovery/rest?version=v4"];
// Authorization scopes required by the API; multiple scopes can be
// included, separated by spaces.
var SCOPES = "https://www.googleapis.com/auth/spreadsheets";
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function initClient() {
gapi.client.init({
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: DISCOVERY_DOCS,
scope: SCOPES
}).then(function () {
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
authorizeButton.onclick = handleAuthClick;
signoutButton.onclick = handleSignoutClick;
});
}
function getStrategies() {
gapi.client.sheets.spreadsheets.values.get({
spreadsheetId: '1AsGngm54DpPpYodYrENvr_Guw7ocW7aX27PRvWKcsq4',
range: 'A:F',
}).then(function(response) {
let range = response.result;
if (range.values.length > 0) {
let strategyZone = $("#strategyZone");
strategyZone.html("");
let dims = [];
let strats = [];
range.values.sort(function(a, b) { return a[3] - b[3]});
for (i = 1; i < range.values.length; i++) {
let r = range.values[i];
let dim = r[1] + "x" + r[2];
if (dims.indexOf(dim) < 0) {
dims.push(dim);
strats.push([]);
}
let index = dims.indexOf(dim);
strats[index].push(r);
}
strats.sort(function(a, b) {return a[1] - b[1]});
for (let i = 0; i < strats.length; i++) {
let div = $("<div>" + strats[i][0][1] + "x" + strats[i][0][2] + "</div>");
for (let j = 0; j <...