import React from 'react'; import { Link } from 'react-router-dom'; import { Helmet } from 'react-helmet'; import { siteLogo, sourceLink, infoLine } from './utils.js'; import { clearStorage } from './utils.js'; class Feed extends React.Component { constructor(props) { super(props); this.state = { stories: JSON.parse(localStorage.getItem('stories')) || false, error: false, }; } componentDidMount() { fetch('/api') .then(res => res.json()) .then( (result) => { this.setState({ stories: result.stories }); clearStorage(); localStorage.setItem('stories', JSON.stringify(result.stories)); result.stories.filter(x => x.score >= 20).slice(0, 25).forEach(x => { fetch('/api/' + x.id) .then(res => res.json()) .then(result => { localStorage.setItem(x.id, JSON.stringify(result.story)); console.log('Preloaded story', x.id, x.title); }, error => {} ); }); }, (error) => { this.setState({ error: true }); } ); } render() { const stories = this.state.stories; const error = this.state.error; return (
Feed - QotNews {error &&

Connection error?

} {stories ?
{stories.map((x, i) =>
{i+1}.
{siteLogo[x.source]} {x.title} ​({sourceLink(x)})
{infoLine(x)}
)}
:

loading...

}
); } } export default Feed;