import React, { useState, useEffect } from 'react'; import dateFormat from 'dateformat'; const NewsFeed = props => { const [articles, setArticles] = useState([]); useEffect(async () => { if (articles.length != 0) { //BUGFIX: There's an extra render called on unmounted components somewhere return; } //NOTE: could this be improved with useMemo? const result = await fetch(`${process.env.NEWS_URI}/news`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' }, }); if (!result.ok) { const err = `${result.status}: ${await result.text()}`; console.log(err); alert(err); } else { setArticles(await result.json()); } }, []); return (
Written by {article.author}, { article.edits > 0 ? Last Updated {dateFormat(article.updatedAt, 'fullDate')} ({`${article.edits} edit${article.edits > 1 ? 's': ''}`}) : Published {dateFormat(article.createdAt, 'fullDate')} }
{article.body}