---
id: 641da9ea9b847a49fe6ee9b6
title: Step 24
challengeType: 0
dashedName: step-24
---

# --description--

La pagina degli autori di fCC adesso è completa. Ma potresti migliorare alcune cose.

Prima di tutto, se clicchi sul pulsante `Load More Authors` un paio di volte vedrai che non aggiunge più altri autori alla pagina. Questo perché hai raggiunto la fine della lista degli autori. Per un'esperienza utente migliore, dovresti chiarire quando non ci sono più dati da visualizzare disabilitando il pulsante e cambiando il suo testo. Un'istruzione `if` è lo strumento perfetto per questo.

All'interno della funzione `fetchMoreAuthors` scrivi un'istruzione `if` e imposta la condizione su `authorDataArr.length <= endingIndex` – il che vuol dire che non ci sono più dati da caricare.

# --hints--

Dovresti avere un'istruzione `if`.

```js
assert.match(code, /if\s*\(/)
```

L'istruzione `if` dovrebbe prendere `authorDataArr.length <= endingIndex` come condizione.

```js
assert.match(code, /if\s*\(authorDataArr\.length\s*<=\s*endingIndex\)\s*/)
```

L'istruzione `if` dovrebbe essere vuota.

```js
assert.match(code, /if\s*\(authorDataArr\.length\s*<=\s*endingIndex\)\s*\{\s*\}/)
```

# --seed--

## --seed-contents--

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>freeCodeCamp News Author Page</title>
    <link rel="stylesheet" href="./styles.css" />
  </head>
  <body>
    <h1 class="title">freeCodeCamp News Author Page</h1>

    <main>
      <div id="author-container"></div>
      <button class="btn" id="load-more-btn">Load More Authors</button>
    </main>

    <script src="./script.js"></script>
  </body>
</html>
```

```css
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --main-bg-color: #1b1b32;
  --light-grey: #f5f6f7;
  --dark-purple: #5a01a7;
  --golden-yellow: #feac32;
}

body {
  background-color: var(--main-bg-color);
  text-align: center;
}

.title {
  color: var(--light-grey);
  margin: 20px 0;
}

#author-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.user-card {
  border-radius: 15px;
  width: 300px;
  height: 350px;
  background-color: var(--light-grey);
  margin: 20px;
}

.user-img {
  width: 150px;
  height: 150px;
  object-fit: cover;
}

.purple-divider {
  background-color: var(--dark-purple);
  width: 100%;
  height: 15px;
}

.author-name {
  margin: 10px;
}

.bio {
  margin: 20px;
}

.error-msg {
  color: var(--light-grey);
}

.btn {
  cursor: pointer;
  width: 200px;
  margin: 10px;
  color: var(--main-bg-color);
  font-size: 14px;
  background-color: var(--golden-yellow);
  background-image: linear-gradient(#fecc4c, #ffac33);
  border-color: var(--golden-yellow);
  border-width: 3px;
}
```

```js
const authorContainer = document.getElementById('author-container');
const loadMoreBtn = document.getElementById('load-more-btn');

let startingIndex = 0;
let endingIndex = 8;
let authorDataArr = [];

fetch('https://cdn.freecodecamp.org/curriculum/news-author-page/authors.json')
  .then((res) => res.json())
  .then((data) => {
    authorDataArr = data;
    displayAuthors(authorDataArr.slice(startingIndex, endingIndex));  
  })
  .catch((err) => {
    console.error(`There was an error: ${err}`);
  });

const fetchMoreAuthors = () => {
  startingIndex += 8;
  endingIndex += 8;

  displayAuthors(authorDataArr.slice(startingIndex, endingIndex));
  --fcc-editable-region--

  --fcc-editable-region--
};

const displayAuthors = (authors) => {
  authors.forEach(({ author, image, url, bio }, index) => {
    authorContainer.innerHTML += `
    <div id="${index}" class="user-card">
      <h2 class="author-name">${author}</h2>
      <img class="user-img" src="${image}" alt="${author} avatar" />
      <p class="bio">${bio}</p>
      <a class="author-link" href="${url}" target="_blank">${author}'s author page</a>
    </div>
  `;
  });
};

loadMoreBtn.addEventListener('click', fetchMoreAuthors);
```
