From 03f2fa5916a0ef607b994a02d4e544875700a567 Mon Sep 17 00:00:00 2001 From: Alejo Avila Date: Sun, 26 Jul 2020 21:11:34 -0500 Subject: [PATCH] [UPDATE] challenge solved --- .gitignore | 1 + package.json | 2 +- src/index.js | 47 +++++++++++++++++++++++++++++++++++------------ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index ad46b30..8da8727 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +package-lock.json # Logs logs *.log diff --git a/package.json b/package.json index 42b81b0..9b61a70 100644 --- a/package.json +++ b/package.json @@ -20,4 +20,4 @@ "devDependencies": { "live-server": "^1.2.1" } -} \ No newline at end of file +} diff --git a/src/index.js b/src/index.js index 7a07752..d6b6242 100644 --- a/src/index.js +++ b/src/index.js @@ -1,13 +1,17 @@ const $app = document.getElementById('app'); const $observe = document.getElementById('observe'); const API = 'https://rickandmortyapi.com/api/character/'; +const localStorage = window.localStorage -const getData = api => { - fetch(api) - .then(response => response.json()) - .then(response => { - const characters = response.results; - let output = characters.map(character => { +localStorage.setItem('next_fetch',`${API}`) + +const getData = async (api) => { + try { + const request = await fetch(api) + const response = await request.json() + const characters = response.results + + let output = await characters.map(character => { return `
@@ -19,12 +23,30 @@ const getData = api => { newItem.classList.add('Items'); newItem.innerHTML = output; $app.appendChild(newItem); - }) - .catch(error => console.log(error)); -} + const url = response.info.next + localStorage.removeItem('next_fetch') + localStorage.setItem('next_fetch',`${url}`) + } + catch(error){ + console.log(error) + } +} -const loadData = () => { - getData(API); + +const loadData = async () => { + const URL = localStorage.getItem('next_fetch') + try { + if (URL === 'null'){ + let h1 = document.createElement('h1'); + h1.innerHTML = 'Ya no hay mas personajes ...!' + $observe.appendChild(h1) + localStorage.removeItem('next_fetch') + intersectionObserver.unobserve($observe); + }else { + await getData(URL) + } + } + catch(error){console.log(error)} } const intersectionObserver = new IntersectionObserver(entries => { @@ -35,4 +57,5 @@ const intersectionObserver = new IntersectionObserver(entries => { rootMargin: '0px 0px 100% 0px', }); -intersectionObserver.observe($observe); \ No newline at end of file +intersectionObserver.observe($observe); +