From 483ef61bf6b3862db7182c7302dc882205610119 Mon Sep 17 00:00:00 2001 From: Jacob Casper Date: Sat, 25 Apr 2020 17:04:42 -0500 Subject: [PATCH] Simplify genre retrieval with promise --- frontend/index.js | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/frontend/index.js b/frontend/index.js index 8a17408..214f679 100644 --- a/frontend/index.js +++ b/frontend/index.js @@ -1,5 +1,21 @@ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); +const getGenres = (lStorage) => { + return new Promise((resolve) => { + const genres = JSON.parse(lStorage.getItem("genres")) + if (genres === null) { + fetch("http://api.brackets.jacobcasper.com/genre") + .then((response) => response.text()) + .then((text) => { + lStorage.setItem("genres", text); + resolve(JSON.parse(text)); + }) + } else { + resolve(genres); + } + }); +} + /** * Safari iOS pls */ @@ -176,12 +192,6 @@ window.onload = () => { const genreForm = document.getElementById("genre-form"); const canvas = document.getElementById("bracket"); - const formSubmitAction = () => { - fetch(encodeURI(`http://api.brackets.jacobcasper.com/artist/genre?genre_name=${genreInput.value}`)) - .then((response) => response.json()) - .then((data) => drawBracket(canvas, data.slice(0, 33), genreInput.value)); - } - const genreFormSubmitPolyfill = () => formSubmitPolyfill(genreList, formSubmitAction) const createGenreList = (genreList, genres) => { @@ -190,17 +200,14 @@ window.onload = () => { genreFormSubmitPolyfill() }) } - let genres = JSON.parse(lStorage.getItem("genres")) - if (genres === null) { - fetch("http://api.brackets.jacobcasper.com/genre") - .then((response) => response.text()) - .then((text) => { - window.localStorage.setItem("genres", text); - genres = JSON.parse(text); - createGenreList(genreList, genres); - }); - } else { - createGenreList(genreList, genres); + + const genres = getGenres(lStorage) + .then((genres) => createGenreList(genreList, genres)); + + const formSubmitAction = () => { + fetch(encodeURI(`http://api.brackets.jacobcasper.com/artist/genre?genre_name=${genreInput.value}`)) + .then((response) => response.json()) + .then((data) => drawBracket(canvas, data.slice(0, 33), genreInput.value)); } genreForm.addEventListener("submit", (e) => { -- 2.20.1