function getRegions() { return [ "euw", "na", "kr", "br" ]; } function getChampions() { return [ {name: "Aatrox"}, {name: "Annie"}, {name: "Braum"}, {name: "Not"} ]; } function getMatchProps() { return [ {text: "Champion", name: "champ"}, {text: "Lane", name: "lane"}, ]; } function getMatches() { return [ {champ: "Xerath", lane: "Middle"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, {champ: "Quinn", lane: "Bottom"}, ]; } function getInfo() { app.summoner = $("#nameinput").val(); app.region = $("#regionselect").val(); } function setUrl() { window.history.pushState("object or string", "Title", "/lol?summoner=" + app.summoner + "®ion=" + app.region + "&view=" + app.view); } function toggleStartUp() { $("#start").removeClass("down"); $("#start").addClass("up"); } function toggleStartDown() { $("#start").removeClass("up"); $("#start").addClass("down"); } function slideStartUp() { $("#start").removeClass("slidedown"); $("#start").addClass("slideup"); } function slideStartDown() { $("#start").removeClass("slideup"); $("#start").addClass("slidedown"); } function setView(view) { console.log("Setting view to " + view); if (view == "history") { toggleStartUp(); $("#matchhistory").show(); } else if (view == "stats") { toggleStartUp(); $("#stats").show(); } app.view = view; } function changeView(view) { let oldView = app.view; console.log("changing view from " + oldView + " to " + view); if (oldView == "start") { if (view == "history") { slideStartUp(); $("#matchhistory").show("slide", { direction: "down" }, 300); } else if (view == "stats") { slideStartUp(); $("#stats").show("slide", { direction: "down" }, 300); } } else if (oldView == "history") { if (view == "start") { $("#matchhistory").hide("slide", { direction: "down" }, 300); slideStartDown(); } else if (view == "stats") { $("#stats").show("blind", { direction: "right" }); $("#matchhistory").hide("blind", { direction: "left" }); } } else if (oldView == "stats") { if (view == "start") { $("#stats").hide("slide", { direction: "down" }, 300); slideStartDown(); } else if (view == "history") { $("#matchhistory").show("blind", { direction: "left" }); $("#stats").hide("blind", { direction: "right" }); } } app.view = view; } let app = new Vue({ el: '#app', data: { summoner: "", region: "", view: "", regions: getRegions(), champions: getChampions(), matchprops: getMatchProps(), matches: getMatches(), }, methods: { submit: function() { getInfo(); if (app.view == "start") changeView("history"); setUrl(); }, historyToStats: function() { changeView("stats"); setUrl(); }, statsToHistory: function() { changeView("history"); setUrl(); }, refreshHistory: function() { }, }, }); function parseUrl() { let url = new URL(window.location.href); if (url.searchParams.has("summoner")) { app.summoner = url.searchParams.get("summoner"); $("#nameinput").val(app.summoner); } if (url.searchParams.has("region")) { app.region = url.searchParams.get("region"); $("#regionselect").val(app.region); } if (url.searchParams.has("view")) { let view = url.searchParams.get("view"); if (view != "start" && view != "history" && view != "stats") { view = "start"; } return view; } else { return "start"; } } window.addEventListener('popstate', () => { let view = parseUrl(); changeView(view); }); window.addEventListener('load', () => { let view = parseUrl(); setView(view); });