Hello! What could be the best approach to get the number of comments on archive view (home page for example).
Right now you could count the comments using the _embedded.replies array.
const homeComments = state.source.get(state.router.link).items
  .filter(item => state.source.post[item.id]._embedded.replies)
  .reduce((acc, item) => acc + state.source.post[item.id]._embedded.replies[0].length, 0)
But it’s not going to be 100% reliable because replies only contains the first 10 comments.
Another way could be doing a new fetch to the comments endpoint with the ids of all the home posts, and looking at the "X-WP-Total" header. You can do a HEAD request to avoid downloading all the comments.
const homeIds = state.source.get(state.router.link).items.map(item => item.id).join(',');
const response = await fetch(`https://yourdomain.com/wp-json/wp/v2/comments?post=${homeIds}&per_page=100`, { method: "HEAD" });
const homeComments = response.headers.get("X-WP-Total");
Again, this will only contain 100 comments. If there’s more, you have to do an additional fetch:
fetch(`https://yourdomain.com/wp-json/wp/v2/comments?post=${homeIds}&per_page=100&page=2`, { method: "HEAD" });
WordPress will tell you if there’s an additional page with the "Link" header, rel="next".
I thought you wanted the sum of comments of all the posts of the homepage. My bad.
Then it’s simpler:
const comments = post._embedded.replies ? post._embedded.replies.length : 0;
If comments === 10 I would show a "+10" in the interface to show that there are 10 or more comments.