diff --git a/README.md b/README.md index 1227316..7f0d490 100644 --- a/README.md +++ b/README.md @@ -1,42 +1 @@ -# Desafio front-end da mLearn - -Esse repositório é o nosso desafio para avaliar o quão bom desenvolvedor front-end você é. - -Provavelmente você já está participando do nosso processo de contratação, mas se você caiu aqui por acaso, leia o documento até o final e caso haja interesse, você pode começar daqui mesmo. - - -## Sobre o desafio - -Esse é um desafio, não um teste ou uma prova de faculdade, portanto não há uma única resposta certa. - -Daremos a você alguns requisitos que devem ser cumpridos, e pelos quais você será avaliado, mas deixamos livre a escolha do método de solução. - -O que nós esperamos aprender de você com o desafio: - -- Seu estilo de trabalho -- Como você pensa e resolve problemas -- Como você se comunica - -O que nós esperamos que você aprenda sobre a mLearn: - -- Como nós trabalhamos como um time. -- Tenha uma visão próxima dos desafios que enfrentamos no dia-a-dia. - -## Próximos passos - -1. Faça um _fork_ desse repositório para sua conta pessoal. -2. As instruções do desafio se encontram no arquivo [`CHALENGE.md`](/CHALENGE.md). -2. Resolva o desafio da forma que você julgar mais adequada. -3. Preferencialmente utilize uma _branch_ chamada `desafio` ou com o seu nome (`nome-sobrenome`) para o desenvolvimento. E submeta o _pull-request_ para essa mesma _branch_. - -## Considerações - -- Nós não iremos limitar a sua escolha por ferramentas e bibliotecas. Porém faça escolhas que sejam condizentes com o desafio apresentado. Para que utilizar uma bazuca para matar uma formiga? -- O tempo limite para execução do teste é de **2 horas**. -- Tente escrever o melhor código possível para que possamos avaliar o seu _pull-request_ com mais facilidade. E lembre-se: Você vai ter que explicar pessoalmente para nós depois. - -## Dúvidas? - -Ficou com alguma dúvida sobre como irá funcionar o processo? Entre em contato que nós te ajudaremos com o processo. - -**Boa sorte!** \ No newline at end of file +# Star Wars Luiz \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..d77dddd --- /dev/null +++ b/css/style.css @@ -0,0 +1,170 @@ +:root { + --corPreta: #1D1E20; + --corBranca: #ffffff; + --corAmarela: #FFC500; + --corCinza: #6A7575; + } +html{ + background-color: var(--corPreta); + font-family: 'Lexend Deca', sans-serif; + color:var(--corBranca); +} +*:focus { + outline: none; +} + +.containerLogo{ + display:flex; + justify-content: center; + align-items: center; + margin: 2em 0em 3em 0em; +} +.containerLogo img{ + height: 8em; +} + +.containerFiltros{ + display:flex; + justify-content: space-evenly; + margin: 0em 0em 2em 0em; +} +#filtrarPersonagem, #filtrarEspecie{ + background-color: transparent; + border-top: none; + border-left: none; + border-right: none; + border-bottom: solid 1px var(--corAmarela); + font-size: 1.2em; + color: var(--corCinza); + padding-bottom: 0.3em; +} +#filtroPersonagem, #filtroEspecie{ + position: relative; +} +#filtroPersonagem i, #filtroEspecie i{ + position: absolute; + right: 0em; + top:0; + color: var(--corAmarela); +} + +.gridPersonagens{ + display: flex; + flex-wrap: wrap; + padding: 0em 2em 2em 2em; + margin: 0em 2em 2em 2em; +} +.box{ + border: solid 1px var(--corAmarela); + display: flex; + flex-direction: column; + flex: 0 0 calc(25% - 2em); + + box-sizing: border-box; + /* padding: 1em 1em 1em 1em; */ + margin: 1em 1em 1em 1em; + position: relative; + height: 10em; + cursor: pointer; +} +.box h2{ + text-align: left; + color: var(--corBranca); + position: absolute; + bottom: 0em; + left: 1em; + margin-right: 0.5em; +} +.generoPersonagem{ + position: absolute; + top:2em; + left: 1em; + text-align: left; + color: var(--corBranca); + font-size: 0.7em; + font-weight: bold; + font-style: italic; +} +.especiePersonagem{ + position: absolute; + top: 1em; + right: 0em; + font-size: 0.7em; + font-weight: bold; + color: var(--corBranca); + padding: 1em 2em 1em 2em; + background-color: var(--corAmarela); +} + +.modal-container{ + width: 100vw; + height: 100vh; + background: rgba(0,0,0, 0.5); + position: fixed; + top: 0px; + left: 0px; + z-index: 2000; + display: none; + justify-content: center; + align-items: center; +} + +.mostrar{ + display: flex; +} + +.conteudoModal{ + background: var(--corBranca); + width: 60%; + color:var(--corPreta); + position: relative; +} +.containerInfos{ + text-align: center; +} +.containerInfos h2{ + color: var(--corAmarela); +} + + +.fechar{ + position: absolute; + top: 0; + right: 0.2em; + background: transparent; + border: none; + font-size: 1.5em; + cursor: pointer; +} + +@keyframes modal{ + from{ + opacity: 0; + transform: translate3d(0, -60px, 0) + } + to{ + opacity: 1; + transform: translate3d(0, 0, 0) + } +} +.mostrar .conteudoModal{ + animation: modal .3s; +} + + + + + + + + + + + + + +.invisivel{ + display: none; +} + + diff --git a/img/starwarslogo.png b/img/starwarslogo.png new file mode 100644 index 0000000..3105f4d Binary files /dev/null and b/img/starwarslogo.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..d253156 --- /dev/null +++ b/index.html @@ -0,0 +1,60 @@ + + + + + + + Star Wars + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/js/filtrosEspecie.js b/js/filtrosEspecie.js new file mode 100644 index 0000000..f59b360 --- /dev/null +++ b/js/filtrosEspecie.js @@ -0,0 +1,25 @@ +var campoFiltroEspecie = document.querySelector("#filtrarEspecie"); +campoFiltroEspecie.addEventListener("input", function() { + + var arrayBox = document.querySelectorAll(".box"); + if (this.value.length > 0) { + for (var i = 0; i < arrayBox.length; i++) { + + var box = arrayBox[i]; + var pEspecie = box.querySelector(".especiePersonagem"); + var titulo = pEspecie.textContent; + var expressao = new RegExp(this.value, "i"); + + if (!expressao.test(titulo)) { + box.classList.add("invisivel"); + } else { + box.classList.remove("invisivel"); + } + } + } else { + for (var i = 0; i < arrayBox.length; i++) { + var box = arrayBox[i]; + box.classList.remove("invisivel"); + } + } +}); diff --git a/js/filtrosPersonagens.js b/js/filtrosPersonagens.js new file mode 100644 index 0000000..1330cfb --- /dev/null +++ b/js/filtrosPersonagens.js @@ -0,0 +1,27 @@ +var campoFiltro = document.querySelector("#filtrarPersonagem"); +campoFiltro.addEventListener("input", function() { + + var arrayBox = document.querySelectorAll(".box"); + if (this.value.length > 0) { + for (var i = 0; i < arrayBox.length; i++) { + + var box = arrayBox[i]; + var h2Nome = box.querySelector(".nomePersonagem"); + var nome = h2Nome.textContent; + var expressao = new RegExp(this.value, "i"); + + if (!expressao.test(nome)) { + box.classList.add("invisivel"); + } else { + box.classList.remove("invisivel"); + } + } + } else { + for (var i = 0; i < arrayBox.length; i++) { + var box = arrayBox[i]; + box.classList.remove("invisivel"); + } + } +}); + + diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..2f1229a --- /dev/null +++ b/js/main.js @@ -0,0 +1,72 @@ +async function fetchPeople(){ + return fetch("https://swapi.co/api/people/") + .then(resp => resp.json()) + .then(personagens => { + + let id; + var campoid; + let nome; + let anoNascimento; + let elementoEspecie; + + let novaBox; + let gridPersonagens; + + personagens.results.forEach(personagem => { + novaBox = document.createElement("div"); + novaBox.classList.add("box"); + + + var url = personagem.url; + id = url.match(/\d/g); + id = id.join(""); + campoid = document.createElement("span"); + campoid.classList.add("campoid"); + campoid.classList.add("invisivel"); + campoid.innerHTML = id; + + nome = document.createElement("h2"); + nome.innerHTML = personagem.name; + nome.classList.add("nomePersonagem"); + + anoNascimento = document.createElement("p"); + anoNascimento.classList.add("generoPersonagem"); + anoNascimento.innerHTML = `Nasceu em ${personagem.birth_year}`; + + elementoEspecie = document.createElement("p"); + elementoEspecie.classList.add("especiePersonagem"); + elementoEspecie.setAttribute('name', `${personagem.species[0]}`); + + novaBox.appendChild(nome); + novaBox.appendChild(anoNascimento); + novaBox.appendChild(elementoEspecie); + novaBox.appendChild(campoid); + + gridPersonagens = document.querySelector(".gridPersonagens"); + gridPersonagens.appendChild(novaBox); + + }); + + completarEspecies(); + salvarLocalStorage(personagens); + }) + .catch(err => console.error(err)) +} +fetchPeople(); + +function completarEspecies(){ + + var elementosEspecie = document.querySelectorAll(".especiePersonagem"); + elementosEspecie.forEach(especieElemento => { + fetchSpecies(especieElemento.getAttribute('name'), especieElemento); + }); +} + +async function fetchSpecies(url, especieElemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(especies => { + especieElemento.innerHTML = especies.name; + }) + .catch(err => console.error(err)) +} \ No newline at end of file diff --git a/js/modal.js b/js/modal.js new file mode 100644 index 0000000..a8fd386 --- /dev/null +++ b/js/modal.js @@ -0,0 +1,97 @@ +function pegarIdPersonagem(){ + + var boxPersonagens = document.querySelectorAll(".box"); + boxPersonagens.forEach(box => { + box.addEventListener('click', (e) => { + + var elemento = e.target; + var idPersonagem = elemento.children[3].innerText; + iniciaModal(idPersonagem); + + }) + }) + +} + + +function iniciaModal(idPersonagem){ + + var arrayPersonagensLocalStorage = JSON.parse(localStorage.getItem("arrayPersonagens")); + + var urlPersonagem = arrayPersonagensLocalStorage.results[idPersonagem-1].url; + var idPersonagemLocalStorage = urlPersonagem.match(/\d/g); + idPersonagemLocalStorage = idPersonagemLocalStorage.join(""); + + let modalNome = document.querySelector(".modalNome"); + modalNome.innerHTML = arrayPersonagensLocalStorage.results[idPersonagem-1].name; + + let modalAnoNascimento = document.querySelector(".modalAnoNascimento"); + modalAnoNascimento.innerHTML = `Nasceu em: ${arrayPersonagensLocalStorage.results[idPersonagem-1].birth_year}`; + + let modalCorOlho = document.querySelector(".modalCorOlho"); + modalCorOlho.innerHTML = `Cor do olho: ${arrayPersonagensLocalStorage.results[idPersonagem-1].eye_color}`; + + let modalGenero = document.querySelector(".modalGenero"); + modalGenero.innerHTML = `Sexo: ${arrayPersonagensLocalStorage.results[idPersonagem-1].gender}`; + + let modalCorCabelo = document.querySelector(".modalCorCabelo"); + modalCorCabelo.innerHTML = `Cor do cabelo: ${arrayPersonagensLocalStorage.results[idPersonagem-1].hair_color}`; + + let modalAltura = document.querySelector(".modalAltura"); + modalAltura.innerHTML = `Altura: ${arrayPersonagensLocalStorage.results[idPersonagem-1].height}`; + + let modalMassa = document.querySelector(".modalMassa"); + modalMassa.innerHTML = `Massa: ${arrayPersonagensLocalStorage.results[idPersonagem-1].mass}`; + + let modalCorPele = document.querySelector(".modalCorPele"); + modalCorPele.innerHTML = `Cor da pele: ${arrayPersonagensLocalStorage.results[idPersonagem-1].skin_color}`; + + let modalMundo = document.querySelector(".modalMundo"); + modalMundo.setAttribute('homeworld', `${arrayPersonagensLocalStorage.results[idPersonagem-1].homeworld}`); + fetchHomeWorld(modalMundo.getAttribute('homeworld'), modalMundo); + + let modalFilmes = document.querySelector(".modalFilmes"); + modalFilmes.setAttribute('films', `${arrayPersonagensLocalStorage.results[idPersonagem-1].films[0]}`); + fetchFilms(modalFilmes.getAttribute('films'), modalFilmes); + + let modalEspecies = document.querySelector(".modalEspecies"); + modalEspecies.setAttribute('especie', `${arrayPersonagensLocalStorage.results[idPersonagem-1].species[0]}`); + fetchSpecies(modalEspecies.getAttribute('especie'), modalEspecies); + + const modal = document.querySelector(".modal-container"); + modal.classList.add("mostrar"); + + modal.addEventListener('click', (e) => { + if(e.target.id == "modal-promocao" || e.target.className == "fechar"){ + modal.classList.remove('mostrar'); + } + }) + +} + +async function fetchFilms(url, elemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(filmes => { + elemento.innerHTML = `Filmes: ${filmes.title}`; + }) + .catch(err => console.error(err)) +} + +async function fetchHomeWorld(url, elemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(homeworld => { + elemento.innerHTML = `Mundo: ${homeworld.name}`; + }) + .catch(err => console.error(err)) +} + + +function salvarLocalStorage(personagens){ + + var arrayPersonagens = []; + arrayPersonagens = personagens; + localStorage.setItem("arrayPersonagens", JSON.stringify(arrayPersonagens)); +} + diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..d77dddd --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,170 @@ +:root { + --corPreta: #1D1E20; + --corBranca: #ffffff; + --corAmarela: #FFC500; + --corCinza: #6A7575; + } +html{ + background-color: var(--corPreta); + font-family: 'Lexend Deca', sans-serif; + color:var(--corBranca); +} +*:focus { + outline: none; +} + +.containerLogo{ + display:flex; + justify-content: center; + align-items: center; + margin: 2em 0em 3em 0em; +} +.containerLogo img{ + height: 8em; +} + +.containerFiltros{ + display:flex; + justify-content: space-evenly; + margin: 0em 0em 2em 0em; +} +#filtrarPersonagem, #filtrarEspecie{ + background-color: transparent; + border-top: none; + border-left: none; + border-right: none; + border-bottom: solid 1px var(--corAmarela); + font-size: 1.2em; + color: var(--corCinza); + padding-bottom: 0.3em; +} +#filtroPersonagem, #filtroEspecie{ + position: relative; +} +#filtroPersonagem i, #filtroEspecie i{ + position: absolute; + right: 0em; + top:0; + color: var(--corAmarela); +} + +.gridPersonagens{ + display: flex; + flex-wrap: wrap; + padding: 0em 2em 2em 2em; + margin: 0em 2em 2em 2em; +} +.box{ + border: solid 1px var(--corAmarela); + display: flex; + flex-direction: column; + flex: 0 0 calc(25% - 2em); + + box-sizing: border-box; + /* padding: 1em 1em 1em 1em; */ + margin: 1em 1em 1em 1em; + position: relative; + height: 10em; + cursor: pointer; +} +.box h2{ + text-align: left; + color: var(--corBranca); + position: absolute; + bottom: 0em; + left: 1em; + margin-right: 0.5em; +} +.generoPersonagem{ + position: absolute; + top:2em; + left: 1em; + text-align: left; + color: var(--corBranca); + font-size: 0.7em; + font-weight: bold; + font-style: italic; +} +.especiePersonagem{ + position: absolute; + top: 1em; + right: 0em; + font-size: 0.7em; + font-weight: bold; + color: var(--corBranca); + padding: 1em 2em 1em 2em; + background-color: var(--corAmarela); +} + +.modal-container{ + width: 100vw; + height: 100vh; + background: rgba(0,0,0, 0.5); + position: fixed; + top: 0px; + left: 0px; + z-index: 2000; + display: none; + justify-content: center; + align-items: center; +} + +.mostrar{ + display: flex; +} + +.conteudoModal{ + background: var(--corBranca); + width: 60%; + color:var(--corPreta); + position: relative; +} +.containerInfos{ + text-align: center; +} +.containerInfos h2{ + color: var(--corAmarela); +} + + +.fechar{ + position: absolute; + top: 0; + right: 0.2em; + background: transparent; + border: none; + font-size: 1.5em; + cursor: pointer; +} + +@keyframes modal{ + from{ + opacity: 0; + transform: translate3d(0, -60px, 0) + } + to{ + opacity: 1; + transform: translate3d(0, 0, 0) + } +} +.mostrar .conteudoModal{ + animation: modal .3s; +} + + + + + + + + + + + + + +.invisivel{ + display: none; +} + + diff --git a/public/img/starwarslogo.png b/public/img/starwarslogo.png new file mode 100644 index 0000000..3105f4d Binary files /dev/null and b/public/img/starwarslogo.png differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..d253156 --- /dev/null +++ b/public/index.html @@ -0,0 +1,60 @@ + + + + + + + Star Wars + + + + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/public/js/filtrosEspecie.js b/public/js/filtrosEspecie.js new file mode 100644 index 0000000..f59b360 --- /dev/null +++ b/public/js/filtrosEspecie.js @@ -0,0 +1,25 @@ +var campoFiltroEspecie = document.querySelector("#filtrarEspecie"); +campoFiltroEspecie.addEventListener("input", function() { + + var arrayBox = document.querySelectorAll(".box"); + if (this.value.length > 0) { + for (var i = 0; i < arrayBox.length; i++) { + + var box = arrayBox[i]; + var pEspecie = box.querySelector(".especiePersonagem"); + var titulo = pEspecie.textContent; + var expressao = new RegExp(this.value, "i"); + + if (!expressao.test(titulo)) { + box.classList.add("invisivel"); + } else { + box.classList.remove("invisivel"); + } + } + } else { + for (var i = 0; i < arrayBox.length; i++) { + var box = arrayBox[i]; + box.classList.remove("invisivel"); + } + } +}); diff --git a/public/js/filtrosPersonagens.js b/public/js/filtrosPersonagens.js new file mode 100644 index 0000000..1330cfb --- /dev/null +++ b/public/js/filtrosPersonagens.js @@ -0,0 +1,27 @@ +var campoFiltro = document.querySelector("#filtrarPersonagem"); +campoFiltro.addEventListener("input", function() { + + var arrayBox = document.querySelectorAll(".box"); + if (this.value.length > 0) { + for (var i = 0; i < arrayBox.length; i++) { + + var box = arrayBox[i]; + var h2Nome = box.querySelector(".nomePersonagem"); + var nome = h2Nome.textContent; + var expressao = new RegExp(this.value, "i"); + + if (!expressao.test(nome)) { + box.classList.add("invisivel"); + } else { + box.classList.remove("invisivel"); + } + } + } else { + for (var i = 0; i < arrayBox.length; i++) { + var box = arrayBox[i]; + box.classList.remove("invisivel"); + } + } +}); + + diff --git a/public/js/main.js b/public/js/main.js new file mode 100644 index 0000000..2f1229a --- /dev/null +++ b/public/js/main.js @@ -0,0 +1,72 @@ +async function fetchPeople(){ + return fetch("https://swapi.co/api/people/") + .then(resp => resp.json()) + .then(personagens => { + + let id; + var campoid; + let nome; + let anoNascimento; + let elementoEspecie; + + let novaBox; + let gridPersonagens; + + personagens.results.forEach(personagem => { + novaBox = document.createElement("div"); + novaBox.classList.add("box"); + + + var url = personagem.url; + id = url.match(/\d/g); + id = id.join(""); + campoid = document.createElement("span"); + campoid.classList.add("campoid"); + campoid.classList.add("invisivel"); + campoid.innerHTML = id; + + nome = document.createElement("h2"); + nome.innerHTML = personagem.name; + nome.classList.add("nomePersonagem"); + + anoNascimento = document.createElement("p"); + anoNascimento.classList.add("generoPersonagem"); + anoNascimento.innerHTML = `Nasceu em ${personagem.birth_year}`; + + elementoEspecie = document.createElement("p"); + elementoEspecie.classList.add("especiePersonagem"); + elementoEspecie.setAttribute('name', `${personagem.species[0]}`); + + novaBox.appendChild(nome); + novaBox.appendChild(anoNascimento); + novaBox.appendChild(elementoEspecie); + novaBox.appendChild(campoid); + + gridPersonagens = document.querySelector(".gridPersonagens"); + gridPersonagens.appendChild(novaBox); + + }); + + completarEspecies(); + salvarLocalStorage(personagens); + }) + .catch(err => console.error(err)) +} +fetchPeople(); + +function completarEspecies(){ + + var elementosEspecie = document.querySelectorAll(".especiePersonagem"); + elementosEspecie.forEach(especieElemento => { + fetchSpecies(especieElemento.getAttribute('name'), especieElemento); + }); +} + +async function fetchSpecies(url, especieElemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(especies => { + especieElemento.innerHTML = especies.name; + }) + .catch(err => console.error(err)) +} \ No newline at end of file diff --git a/public/js/modal.js b/public/js/modal.js new file mode 100644 index 0000000..a8fd386 --- /dev/null +++ b/public/js/modal.js @@ -0,0 +1,97 @@ +function pegarIdPersonagem(){ + + var boxPersonagens = document.querySelectorAll(".box"); + boxPersonagens.forEach(box => { + box.addEventListener('click', (e) => { + + var elemento = e.target; + var idPersonagem = elemento.children[3].innerText; + iniciaModal(idPersonagem); + + }) + }) + +} + + +function iniciaModal(idPersonagem){ + + var arrayPersonagensLocalStorage = JSON.parse(localStorage.getItem("arrayPersonagens")); + + var urlPersonagem = arrayPersonagensLocalStorage.results[idPersonagem-1].url; + var idPersonagemLocalStorage = urlPersonagem.match(/\d/g); + idPersonagemLocalStorage = idPersonagemLocalStorage.join(""); + + let modalNome = document.querySelector(".modalNome"); + modalNome.innerHTML = arrayPersonagensLocalStorage.results[idPersonagem-1].name; + + let modalAnoNascimento = document.querySelector(".modalAnoNascimento"); + modalAnoNascimento.innerHTML = `Nasceu em: ${arrayPersonagensLocalStorage.results[idPersonagem-1].birth_year}`; + + let modalCorOlho = document.querySelector(".modalCorOlho"); + modalCorOlho.innerHTML = `Cor do olho: ${arrayPersonagensLocalStorage.results[idPersonagem-1].eye_color}`; + + let modalGenero = document.querySelector(".modalGenero"); + modalGenero.innerHTML = `Sexo: ${arrayPersonagensLocalStorage.results[idPersonagem-1].gender}`; + + let modalCorCabelo = document.querySelector(".modalCorCabelo"); + modalCorCabelo.innerHTML = `Cor do cabelo: ${arrayPersonagensLocalStorage.results[idPersonagem-1].hair_color}`; + + let modalAltura = document.querySelector(".modalAltura"); + modalAltura.innerHTML = `Altura: ${arrayPersonagensLocalStorage.results[idPersonagem-1].height}`; + + let modalMassa = document.querySelector(".modalMassa"); + modalMassa.innerHTML = `Massa: ${arrayPersonagensLocalStorage.results[idPersonagem-1].mass}`; + + let modalCorPele = document.querySelector(".modalCorPele"); + modalCorPele.innerHTML = `Cor da pele: ${arrayPersonagensLocalStorage.results[idPersonagem-1].skin_color}`; + + let modalMundo = document.querySelector(".modalMundo"); + modalMundo.setAttribute('homeworld', `${arrayPersonagensLocalStorage.results[idPersonagem-1].homeworld}`); + fetchHomeWorld(modalMundo.getAttribute('homeworld'), modalMundo); + + let modalFilmes = document.querySelector(".modalFilmes"); + modalFilmes.setAttribute('films', `${arrayPersonagensLocalStorage.results[idPersonagem-1].films[0]}`); + fetchFilms(modalFilmes.getAttribute('films'), modalFilmes); + + let modalEspecies = document.querySelector(".modalEspecies"); + modalEspecies.setAttribute('especie', `${arrayPersonagensLocalStorage.results[idPersonagem-1].species[0]}`); + fetchSpecies(modalEspecies.getAttribute('especie'), modalEspecies); + + const modal = document.querySelector(".modal-container"); + modal.classList.add("mostrar"); + + modal.addEventListener('click', (e) => { + if(e.target.id == "modal-promocao" || e.target.className == "fechar"){ + modal.classList.remove('mostrar'); + } + }) + +} + +async function fetchFilms(url, elemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(filmes => { + elemento.innerHTML = `Filmes: ${filmes.title}`; + }) + .catch(err => console.error(err)) +} + +async function fetchHomeWorld(url, elemento){ + return await fetch(url) + .then(resp => resp.json()) + .then(homeworld => { + elemento.innerHTML = `Mundo: ${homeworld.name}`; + }) + .catch(err => console.error(err)) +} + + +function salvarLocalStorage(personagens){ + + var arrayPersonagens = []; + arrayPersonagens = personagens; + localStorage.setItem("arrayPersonagens", JSON.stringify(arrayPersonagens)); +} +