diff --git a/src/__tests__/SearchPage.js b/src/__tests__/SearchPage.js index ec98b8c..29c17a2 100644 --- a/src/__tests__/SearchPage.js +++ b/src/__tests__/SearchPage.js @@ -29,6 +29,12 @@ const setup = (initialPath = '/') => { return { ...view, history }; }; +async function clickFirstCellWithValue(cellValue) { + const heatmap = await screen.findByTestId('heatmap'); + const cell = within(heatmap).getAllByText(cellValue)[0]; // first cell + userEvent.click(cell); +} + describe('heatmap', () => { it('loads top post for subreddit in URL', async () => { setup('/search/reactjs'); @@ -108,7 +114,67 @@ describe('subreddit form', () => { it('no accessibility violation', async () => { const { container } = setup('/search/reactjs'); - expect(await screen.findByTestId('heatmap')).toBeInTheDocument(); + // expect(await screen.findByTestId('heatmap')).toBeInTheDocument(); + await clickFirstCellWithValue('3'); + expect(await axe(container)).toHaveNoViolations(); }); }); + +describe('posts table', () => { + it('not visible when no cell clicked', async () => { + setup('/search/reactjs'); + await screen.findByTestId('heatmap'); + + expect(screen.queryByRole('table')).not.toBeInTheDocument(); + }); + + it('not visible when cell clicked has value 0', async () => { + setup('/search/reactjs'); + await clickFirstCellWithValue('0'); // argument is string + + expect(screen.queryByRole('table')).not.toBeInTheDocument(); + }); + + it('shows posts ordered by time acording to cell clicked', async () => { + setup('/search/reactjs'); + await clickFirstCellWithValue('3'); // argument is string + + const table = screen.getByRole('table'); + const tableRows = within(table) + .getAllByRole('row') + .slice(1); // return rows in tbody, exclude header row + + const tableContents = tableRows.map((row) => { + const cells = within(row).getAllByRole('cell'); + const titleLink = within(cells[0]).getByRole('link'); + const authorLink = within(cells[4]).getByRole('link'); + + return { + title: titleLink.innerHTML, + href: titleLink.href, + time: cells[1].innerHTML, + score: cells[2].innerHTML, + numComments: cells[4].innerHTML, + author: authorLink.innerHTML, + authorLink: authorLink.href, + }; + }); + + expect(tableContents).toMatchSnapshot(); + }); + + it('shows no link for deleted author', async () => { + setup('/search/reactjs'); + const heatmap = await screen.findByTestId('heatmap'); + const hasDeletedAuthor = within(heatmap).getAllByText('3')[4]; + userEvent.click(hasDeletedAuthor); + + const table = screen.getByRole('table'); + const rowWithDeletedUser = within(table).getAllByRole('row')[2]; + + const authorCell = within(rowWithDeletedUser).getAllByRole('cell')[4]; + expect(within(authorCell).queryByRole('link')).not.toBeInTheDocument(); + expect(authorCell.innerHTML).toBe('[deleted]'); + }); +}); diff --git a/src/__tests__/_PostsTable.js_ b/src/__tests__/_PostsTable.js_ new file mode 100644 index 0000000..206dc1e --- /dev/null +++ b/src/__tests__/_PostsTable.js_ @@ -0,0 +1,98 @@ +import React from 'react'; +import { MemoryRouter, Route } from 'react-router-dom'; +import { + render, screen, within, +} from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import '@testing-library/jest-dom/extend-expect'; + +import App from '../app'; + +const setup = (initialPath = '/') => { + let history; + + const view = render( + + + { + history = props.history; + return null; + }} + /> + , + ); + return { ...view, history }; +}; + +describe('post table', () => { + it('shows posts per hour in table', async () => { + setup('/search/reactjs'); + + let cellToClick; + let numPosts; + + screen.getByText('loading-spinner.svg'); + + const heatmap = await screen.findByTestId('heatmap'); + + expect(heatmap).toBeInTheDocument(); + const cells = await within(heatmap).findAllByRole('button'); + + // posts table is shown when a box is cliked + + // it is not shown when there are no posts for the selected weekday/hour + // eslint-disable-next-line prefer-destructuring + cellToClick = cells[0]; + numPosts = Number(cellToClick.innerHTML); + + expect(numPosts).toBe(0); + userEvent.click(cellToClick); + + // expect(postsTable).not.toBeInTheDocument(); + expect(await screen.queryByTestId('postsTable')).toBeNull(); + + // it is shown when there are posts for the selected weekday/hour + // eslint-disable-next-line prefer-destructuring + cellToClick = cells[28]; // contains a deketed author + numPosts = Number(cellToClick.innerHTML); + + expect(numPosts).not.toBe(0); + userEvent.click(cellToClick); + + // posts table is shown when a box is cliked + const postsTable = await screen.findByTestId('postsTable'); + expect(postsTable).toBeInTheDocument(); + + const postsRows = await within(postsTable).findAllByTestId('postRow'); + + expect(postsRows.length).not.toEqual(0); + expect(postsRows.length).toEqual(numPosts); + + // links + postsRows.forEach((postRow) => { + // if the author has been deleted it should not be a link + const links = within(postRow).getAllByRole('link'); + if (postRow.innerHTML.includes('[deleted]')) { + expect(links.length).toEqual(1); + expect(links[0]).toHaveAttribute('href', expect.not.stringContaining('https://reddit.com/u/')); + } else { + // 'match', /https:\/\/(www.)?reddit.com\/ + // r\/javascript\/comments\/er5hqm\/the_new_babel_release_gives_support_for\/?/ + // the title links to the post on Reddit + expect(links[0]).toHaveAttribute('href', expect.stringContaining('https://www.reddit.com/r/')); + // the title links opens in a new browser tab + expect(links[0]).toHaveAttribute('target', '_blank'); + userEvent.click(links[0]); + + // the author links to the author's reddit profile + expect(links[1]).toHaveAttribute('href', expect.stringContaining('https://reddit.com/u/')); + // the author links opens in a new browser tab + expect(links[1]).toHaveAttribute('target', '_blank'); + } + + // the posts are sorted by the time they have been created + }); + }); +}); diff --git a/src/__tests__/__snapshots__/SearchPage.js.snap b/src/__tests__/__snapshots__/SearchPage.js.snap index 3aedf97..45c330f 100644 --- a/src/__tests__/__snapshots__/SearchPage.js.snap +++ b/src/__tests__/__snapshots__/SearchPage.js.snap @@ -172,3 +172,35 @@ Array [ "3", ] `; + +exports[`posts table shows posts ordered by time acording to cell clicked 1`] = ` +Array [ + Object { + "author": "jherr2016", + "authorLink": "https://reddit.com/u/jherr2016", + "href": "https://reddit.com/r/reactjs/comments/ff55gz/intro_to_federated_modules_in_webpack_5/", + "numComments": "jherr2016", + "score": "127", + "time": "2 am", + "title": "Intro to Federated Modules in Webpack 5", + }, + Object { + "author": "albaneso", + "authorLink": "https://reddit.com/u/albaneso", + "href": "https://reddit.com/r/reactjs/comments/du50op/reactinteractivepaycard/", + "numComments": "albaneso", + "score": "2070", + "time": "2 am", + "title": "react-interactive-paycard", + }, + Object { + "author": "Fizaraz", + "authorLink": "https://reddit.com/u/Fizaraz", + "href": "https://reddit.com/r/reactjs/comments/gpg5xq/i_redesigned_my_personal_website_from_scratch_and/", + "numComments": "Fizaraz", + "score": "179", + "time": "2 am", + "title": "I redesigned my personal website from scratch, and it is great!", + }, +] +`; diff --git a/src/__tests__/__snapshots__/_SearchPage.js copy.snap_ b/src/__tests__/__snapshots__/_SearchPage.js copy.snap_ new file mode 100644 index 0000000..45c330f --- /dev/null +++ b/src/__tests__/__snapshots__/_SearchPage.js copy.snap_ @@ -0,0 +1,206 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`heatmap loads top post for subreddit in URL 1`] = ` +Array [ + "0", + "2", + "3", + "3", + "2", + "0", + "2", + "2", + "2", + "2", + "1", + "4", + "3", + "2", + "6", + "3", + "5", + "4", + "4", + "6", + "6", + "2", + "2", + "4", + "1", + "2", + "2", + "0", + "3", + "0", + "2", + "2", + "2", + "1", + "1", + "4", + "0", + "6", + "6", + "7", + "7", + "3", + "5", + "3", + "7", + "4", + "6", + "0", + "5", + "1", + "3", + "2", + "1", + "2", + "0", + "1", + "2", + "3", + "2", + "4", + "2", + "1", + "7", + "9", + "3", + "4", + "3", + "4", + "8", + "2", + "0", + "2", + "1", + "2", + "0", + "2", + "1", + "2", + "1", + "1", + "0", + "2", + "4", + "2", + "7", + "3", + "4", + "5", + "5", + "3", + "2", + "5", + "2", + "3", + "1", + "4", + "3", + "2", + "1", + "1", + "4", + "0", + "0", + "3", + "0", + "3", + "2", + "5", + "3", + "1", + "5", + "2", + "12", + "5", + "8", + "6", + "5", + "1", + "3", + "1", + "0", + "2", + "0", + "3", + "3", + "2", + "2", + "0", + "1", + "2", + "1", + "3", + "9", + "0", + "3", + "9", + "7", + "4", + "4", + "4", + "5", + "3", + "3", + "0", + "1", + "2", + "3", + "1", + "2", + "0", + "2", + "1", + "4", + "2", + "3", + "4", + "2", + "4", + "6", + "6", + "7", + "3", + "4", + "5", + "6", + "1", + "5", + "3", +] +`; + +exports[`posts table shows posts ordered by time acording to cell clicked 1`] = ` +Array [ + Object { + "author": "jherr2016", + "authorLink": "https://reddit.com/u/jherr2016", + "href": "https://reddit.com/r/reactjs/comments/ff55gz/intro_to_federated_modules_in_webpack_5/", + "numComments": "jherr2016", + "score": "127", + "time": "2 am", + "title": "Intro to Federated Modules in Webpack 5", + }, + Object { + "author": "albaneso", + "authorLink": "https://reddit.com/u/albaneso", + "href": "https://reddit.com/r/reactjs/comments/du50op/reactinteractivepaycard/", + "numComments": "albaneso", + "score": "2070", + "time": "2 am", + "title": "react-interactive-paycard", + }, + Object { + "author": "Fizaraz", + "authorLink": "https://reddit.com/u/Fizaraz", + "href": "https://reddit.com/r/reactjs/comments/gpg5xq/i_redesigned_my_personal_website_from_scratch_and/", + "numComments": "Fizaraz", + "score": "179", + "time": "2 am", + "title": "I redesigned my personal website from scratch, and it is great!", + }, +] +`; diff --git a/src/page-search/Heatmap.js b/src/page-search/Heatmap.js index 080c132..118c998 100644 --- a/src/page-search/Heatmap.js +++ b/src/page-search/Heatmap.js @@ -3,13 +3,16 @@ import { arrayOf, func, number, shape, } from 'prop-types'; +import propTypes from './propTypes'; import { Container, TimezoneWrapper, Timezone, } from './Heatmap.style'; import HeatmapRow from './HeatmapRow'; import HeatmapHeaderRow from './HeatmapHeaderRow'; -function Heatmap({ postsPerDay, onClickHour, selectedDayAndHour }) { +function Heatmap({ + postsPerDay, onClickHour, selectedDayAndHour, +}) { return ( <> @@ -37,7 +40,7 @@ function Heatmap({ postsPerDay, onClickHour, selectedDayAndHour }) { } Heatmap.propTypes = { - postsPerDay: arrayOf(arrayOf(number)).isRequired, + postsPerDay: arrayOf(arrayOf(arrayOf(propTypes.post))).isRequired, onClickHour: func.isRequired, selectedDayAndHour: shape({ day: number, diff --git a/src/page-search/HeatmapRow.js b/src/page-search/HeatmapRow.js index 2698e23..27b82d7 100644 --- a/src/page-search/HeatmapRow.js +++ b/src/page-search/HeatmapRow.js @@ -1,6 +1,7 @@ import React from 'react'; import { arrayOf, func, number } from 'prop-types'; +import propTypes from './propTypes'; import { Container, Weekday, Hour } from './HeatmapRow.style'; const weekdays = [ @@ -14,22 +15,23 @@ const weekdays = [ ]; function HeatmapRow({ + day, postsPerHour, onClickHour, selectedHour, }) { return ( {weekdays[day]} { - postsPerHour.map((numPosts, hour) => ( + postsPerHour.map((posts, hour) => ( onClickHour({ day, hour })} selected={hour === selectedHour} type="button" > - {numPosts} + {posts.length} )) } @@ -39,7 +41,7 @@ function HeatmapRow({ HeatmapRow.propTypes = { day: number.isRequired, - postsPerHour: arrayOf(number).isRequired, + postsPerHour: arrayOf(arrayOf(propTypes.post)).isRequired, onClickHour: func.isRequired, selectedHour: number, }; diff --git a/src/page-search/HeatmapSection.js b/src/page-search/HeatmapSection.js index a79caf6..fe87225 100644 --- a/src/page-search/HeatmapSection.js +++ b/src/page-search/HeatmapSection.js @@ -11,11 +11,9 @@ import { function HeatmapSection() { const { subreddit } = useParams(); // route param set in App const { - isLoading, hasError, postsPerDay, allPosts, + isLoading, hasError, postsPerDay, } = useFetchPosts(subreddit); const [selectedDayAndHour, setSelectedDayAndHour] = useState({ day: null, hour: null }); - - // console.log('>>>check if selected day/hour click re-renders component', selectedDayAndHour); if (isLoading) { return ( @@ -33,8 +31,7 @@ function HeatmapSection() { } const { day, hour } = selectedDayAndHour; - // console.log('day, hour, postPerHour', day, hour, postsPerDay[day || 0][hour || 0]); - // {
JSON.stringify(selectedDayAndHour)
} + const selectedPosts = (postsPerDay[day] && postsPerDay[day][hour]) || []; return ( <> @@ -43,13 +40,14 @@ function HeatmapSection() { postsPerDay={postsPerDay} selectedDayAndHour={selectedDayAndHour} onClickHour={setSelectedDayAndHour} + // showPostsTable={setPostsTableIsVisible} /> -
- { - day && hour && - } + selectedPosts.length > 0 && ( + + ) + } ); diff --git a/src/page-search/PostAuthor.js b/src/page-search/PostAuthor.js new file mode 100644 index 0000000..85fc4f8 --- /dev/null +++ b/src/page-search/PostAuthor.js @@ -0,0 +1,26 @@ +import React from 'react'; +import { string } from 'prop-types'; + +import { Link } from './PostsTable.style'; + +function PostAuthor({ author }) { + if (author === '[deleted]') { + return author; + } + + return ( + + {author} + + ); +} + +PostAuthor.propTypes = { + author: string.isRequired, +}; + +export default PostAuthor; diff --git a/src/page-search/PostsTable.js b/src/page-search/PostsTable.js index ae05805..1cc31ab 100644 --- a/src/page-search/PostsTable.js +++ b/src/page-search/PostsTable.js @@ -1,48 +1,76 @@ import React from 'react'; -import { Link } from 'react-router-dom'; -import { arrayOf, number } from 'prop-types'; +import { arrayOf } from 'prop-types'; import { - Headline, Table, Container, TableRow, TH, + Container, + Headline, + Table, + Row, + HeaderColumn, + Column, + TitleColumn, + AuthorColumn, + Link, } from './PostsTable.style'; -function PostsTable({ posts }) { - // console.log('##### In PostTable', posts); - React.useEffect(() => { +import propTypes from './propTypes'; +import PostAuthor from './PostAuthor'; + +function sortPosts(posts) { + // posts passed by ref so avoid mutation with aray destructuring + return [...posts].sort((a, b) => a.createdAt.getMinutes() - b.createdAt.getMinutes()); +} + +function getDisplayTime({ createdAt }) { + return createdAt + .toLocaleString('en-US', { hour: 'numeric', minutes: 'numeric', hour12: true }) + .toLowerCase(); +} - }); +function PostsTable({ posts }) { return ( Posts + - - - - - - - + + Title + Time Posted + Score + Comments + Author + + { - posts.map((post, index) => { - const { - author, createdAt, title, comments, score, url, - } = post; - const timePosted = (new Date(createdAt)).toLocaleTimeString(); - return ( - // eslint-disable-next-line react/no-array-index-key - - - - - - - - ); - }) - } + sortPosts(posts).map((post) => ( + + + + {post.title} + + + + {getDisplayTime(post)} + + + {post.score} + + + {post.numComments} + + + + + + )) + }
TitlePostedScoreCommentsAuthor
{title}{timePosted}{score}{comments}{author}
@@ -50,7 +78,7 @@ function PostsTable({ posts }) { } PostsTable.propTypes = { - posts: arrayOf(arrayOf(number)).isRequired, + posts: arrayOf(propTypes.post).isRequired, }; export default PostsTable; diff --git a/src/page-search/PostsTable.style.js b/src/page-search/PostsTable.style.js index 2979ba3..0fd66c7 100644 --- a/src/page-search/PostsTable.style.js +++ b/src/page-search/PostsTable.style.js @@ -1,41 +1,55 @@ -import styled from 'styled-components'; +import styled, { css } from 'styled-components'; export const Container = styled.div` - width: 100%; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; + width: 786px; + margin: 20px auto; `; -export const Headline = styled.h3` - text-align: left; - width: 100%; - max-width: 786px; - height: 28px; - font-family: Bitter; - font-size: 24px; - font-weight: normal; - color: #000000; +export const Headline = styled.h2` + margin-bottom: 4px; `; export const Table = styled.table` -width: 100%; -max-width: 786px; + text-align: left; + font-size: ${(props) => props.theme.font.size.small}; + color: ${(props) => props.theme.color.dark}; + border-collapse: collapse; `; -export const TableRow = styled.tr` - width: 786px; - height: 35px; - border: solid 1px #dddddd; - background-color: #ffffff; -`; - -export const TH = styled.th` -width: 350px; -height: 18px; -font-family: Montserrat; -font-size: 14px; -font-weight: 500; -color: #000000; +export const Row = styled.tr``; + +export const HeaderColumn = styled.th` + border: 1px solid #dddddd; + padding: 0 12px 0 11px; + line-height: 34px; + font-weight: 500; +`; + +export const Column = styled.td` + height: 34px; + padding: 0 12px; + border: 1px solid #dddddd; + line-height: 33px; +`; + +const singleLineEllipsis = css` + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +`; + +export const TitleColumn = styled(Column)` + width: 373px; + max-width: 373px; + ${singleLineEllipsis} +`; + +export const AuthorColumn = styled(Column)` + width: 129px; + max-width: 129px; + ${singleLineEllipsis} +`; + +export const Link = styled.a` + text-decoration: none; `; diff --git a/src/page-search/_PostsTable2_.js b/src/page-search/_PostsTable2_.js new file mode 100644 index 0000000..a35f3fc --- /dev/null +++ b/src/page-search/_PostsTable2_.js @@ -0,0 +1,59 @@ +import React from 'react'; + +import { arrayOf, shape } from 'prop-types'; + +import { + Headline, + Container, + PostsHeaderRow, + PostRow, + Cell, + RedditLink, + TitleWrapper, +} from './_PostsTable_.style_'; + +function PostsTable({ posts }) { + return ( + + Posts + + Title + Time Posted + Score + Comments + Author + + { + posts + .sort((post1, post2) => ( + new Date(post1.createdAt).getMinutes()) - (new Date(post2.createdAt).getMinutes())) + .map((post, index) => { + const { + author, createdAt, title, comments, score, permalink, + } = post; + const timePosted = (new Date(createdAt)).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); + const postUrl = `https://www.reddit.com${permalink}`; + const authUrl = author !== '[deleted]' + ? {author} + : author; + return ( + // eslint-disable-next-line react/no-array-index-key + + {title} +
{timePosted}
+ {score} + {comments} + {authUrl} +
+ ); + }) + } +
+ ); +} + +PostsTable.propTypes = { + posts: arrayOf(shape).isRequired, +}; + +export default PostsTable; diff --git a/src/page-search/_PostsTable_.style_.js b/src/page-search/_PostsTable_.style_.js new file mode 100644 index 0000000..acf37df --- /dev/null +++ b/src/page-search/_PostsTable_.style_.js @@ -0,0 +1,97 @@ +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; + +export const Container = styled.div` + width: 786px; + display: flex; + margin: 0 auto; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 0px; + +`; + +export const Headline = styled.h3` + text-align: left; + width: 100%; + /* max-width: 786px; */ + height: 28px; + font-family: Bitter; + font-size: 24px; + font-weight: normal; + color: #000000; +`; + +export const PostsHeaderRow = styled.div` + width: 786px; + height: 35px; + display: flex; + font-weight: 500; + font-family: ${(props) => props.theme.font.family.default}; + font-size: ${(props) => props.theme.font.size.small}; +`; + +export const TH = styled.th` +/* width: 350px; */ +height: 18px; +color: #000000; +padding: 10px; +text-align: left; +font-weight: 500; +font-family: ${(props) => props.theme.font.family.default}; +font-size: ${(props) => props.theme.font.size.small}; +`; + +export const PostRow = styled.div` + display: flex; + width: 100%; + max-width: 786px; + + height: 35px; + border: solid 1px #dddddd; + background-color: #ffffff; +`; + +export const Cell = styled.div` + /* position: relative; */ + /* width: 75%; */ + display: inline-block; + max-width: 100px; + height: 35px; + padding: 10px; + color: #000000; + text-align: left; + /* overflow: hidden; + text-overflow: ellipsis; */ + font-family: ${(props) => props.theme.font.family.default}; + font-size: ${(props) => props.theme.font.size.small}; +`; + +export const TitleWrapper = styled.div` + width: 450px; + position: relative; + /* width: 200px; */ + padding: 10px; + height: 35px; + /* flex: 1; */ + color: #000000; + /* overflow: hidden; + text-overflow: ellipsis; */ + font-family: ${(props) => props.theme.font.family.default}; + font-size: ${(props) => props.theme.font.size.small}; +`; + +export const RedditLink = styled(Link)` + /* width: 100%; */ + /* width: 75%; */ + height: 35px; + display: block; + text-decoration: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: ${(props) => props.theme.color.postsTable.link}; + font-size: ${(props) => props.theme.font.size.small}; + cursor: pointer; +`; diff --git a/src/page-search/__snapshots__/_useFetchPosts.test.js copy.snap_ b/src/page-search/__snapshots__/_useFetchPosts.test.js copy.snap_ new file mode 100644 index 0000000..3903c4f --- /dev/null +++ b/src/page-search/__snapshots__/_useFetchPosts.test.js copy.snap_ @@ -0,0 +1,188 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`loads 500 posts from the Reddit API 1`] = ` +Array [ + Array [ + 0, + 2, + 3, + 3, + 2, + 0, + 2, + 2, + 2, + 2, + 1, + 4, + 3, + 2, + 6, + 3, + 5, + 4, + 4, + 6, + 6, + 2, + 2, + 4, + ], + Array [ + 1, + 2, + 2, + 0, + 3, + 0, + 2, + 2, + 2, + 1, + 1, + 4, + 0, + 6, + 6, + 7, + 7, + 3, + 5, + 3, + 7, + 4, + 6, + 0, + ], + Array [ + 5, + 1, + 3, + 2, + 1, + 2, + 0, + 1, + 2, + 3, + 2, + 4, + 2, + 1, + 7, + 9, + 3, + 4, + 3, + 4, + 8, + 2, + 0, + 2, + ], + Array [ + 1, + 2, + 0, + 2, + 1, + 2, + 1, + 1, + 0, + 2, + 4, + 2, + 7, + 3, + 4, + 5, + 5, + 3, + 2, + 5, + 2, + 3, + 1, + 4, + ], + Array [ + 3, + 2, + 1, + 1, + 4, + 0, + 0, + 3, + 0, + 3, + 2, + 5, + 3, + 1, + 5, + 2, + 12, + 5, + 8, + 6, + 5, + 1, + 3, + 1, + ], + Array [ + 0, + 2, + 0, + 3, + 3, + 2, + 2, + 0, + 1, + 2, + 1, + 3, + 9, + 0, + 3, + 9, + 7, + 4, + 4, + 4, + 5, + 3, + 3, + 0, + ], + Array [ + 1, + 2, + 3, + 1, + 2, + 0, + 2, + 1, + 4, + 2, + 3, + 4, + 2, + 4, + 6, + 6, + 7, + 3, + 4, + 5, + 6, + 1, + 5, + 3, + ], +] +`; diff --git a/src/page-search/__snapshots__/useFetchPosts.test.js.snap b/src/page-search/__snapshots__/useFetchPosts.test.js.snap index 3903c4f..502acc7 100644 --- a/src/page-search/__snapshots__/useFetchPosts.test.js.snap +++ b/src/page-search/__snapshots__/useFetchPosts.test.js.snap @@ -3,186 +3,4335 @@ exports[`loads 500 posts from the Reddit API 1`] = ` Array [ Array [ - 0, - 2, - 3, - 3, - 2, - 0, - 2, - 2, - 2, - 2, - 1, - 4, - 3, - 2, - 6, - 3, - 5, - 4, - 4, - 6, - 6, - 2, - 2, - 4, + Array [], + Array [ + Object { + "author": "luketmillar", + "createdAt": 2020-01-26T00:00:16.000Z, + "numComments": 88, + "score": 626, + "title": "I made a game with React this morning and think it turned out pretty ok. Let know what you think. Link in the comments.", + "url": "https://reddit.com/r/reactjs/comments/etyxdb/i_made_a_game_with_react_this_morning_and_think/", + }, + Object { + "author": "patrik_pk", + "createdAt": 2020-08-29T23:27:33.000Z, + "numComments": 17, + "score": 210, + "title": "I updated my RPG game made with React.js and wanted to share", + "url": "https://reddit.com/r/reactjs/comments/ij2j27/i_updated_my_rpg_game_made_with_reactjs_and/", + }, + ], + Array [ + Object { + "author": "albaneso", + "createdAt": 2019-11-10T01:31:41.000Z, + "numComments": 79, + "score": 2070, + "title": "react-interactive-paycard", + "url": "https://reddit.com/r/reactjs/comments/du50op/reactinteractivepaycard/", + }, + Object { + "author": "Fizaraz", + "createdAt": 2020-05-24T00:39:05.000Z, + "numComments": 61, + "score": 179, + "title": "I redesigned my personal website from scratch, and it is great!", + "url": "https://reddit.com/r/reactjs/comments/gpg5xq/i_redesigned_my_personal_website_from_scratch_and/", + }, + Object { + "author": "jherr2016", + "createdAt": 2020-03-08T01:26:02.000Z, + "numComments": 23, + "score": 127, + "title": "Intro to Federated Modules in Webpack 5", + "url": "https://reddit.com/r/reactjs/comments/ff55gz/intro_to_federated_modules_in_webpack_5/", + }, + ], + Array [ + Object { + "author": "slide-lock", + "createdAt": 2019-10-13T01:00:29.000Z, + "numComments": 30, + "score": 217, + "title": "Introducing Full Page React Router Transitions", + "url": "https://reddit.com/r/reactjs/comments/dh3qok/introducing_full_page_react_router_transitions/", + }, + Object { + "author": "ibaslogic", + "createdAt": 2020-02-02T02:56:10.000Z, + "numComments": 25, + "score": 217, + "title": "My Gatsby Theme is Available for Use and Modification (Check Source Code on GitHub)", + "url": "https://reddit.com/r/reactjs/comments/exhpdy/my_gatsby_theme_is_available_for_use_and/", + }, + Object { + "author": "maco6461", + "createdAt": 2020-01-19T02:41:46.000Z, + "numComments": 45, + "score": 191, + "title": "Turns out JavaScript compiling and injection in iframes is NOT as simple as HTML/CSS 😅 but I finally made some good progress 🙌🏻. Next steps are to make the iframe refresh after the user hasn’t typed for a while, improved formatting/auto completion, and generate downloadable/shareable code files", + "url": "https://reddit.com/r/reactjs/comments/eqqmuw/turns_out_javascript_compiling_and_injection_in/", + }, + ], + Array [ + Object { + "author": "CaptainOnBoard", + "createdAt": 2020-08-23T02:16:24.000Z, + "numComments": 33, + "score": 557, + "title": "A CLI tool that scans your project and splits the one big global CSS file into component level css files.", + "url": "https://reddit.com/r/reactjs/comments/ievaw5/a_cli_tool_that_scans_your_project_and_splits_the/", + }, + Object { + "author": "WellyShen", + "createdAt": 2020-03-29T02:04:49.000Z, + "numComments": 21, + "score": 184, + "title": "✨ Introducing react-cool-portal: React hook for Portals, which renders modals, dropdowns, tooltips etc. to <body> or else.", + "url": "https://reddit.com/r/reactjs/comments/fqxptx/introducing_reactcoolportal_react_hook_for/", + }, + ], + Array [], + Array [ + Object { + "author": "Ms-mousa", + "createdAt": 2019-12-29T05:22:57.000Z, + "numComments": 61, + "score": 464, + "title": "I’m making a free course on learning modern react in 2020. Including Hooks and all the modern API. Free. No ads. Feedback wanted.", + "url": "https://reddit.com/r/reactjs/comments/eh21tp/im_making_a_free_course_on_learning_modern_react/", + }, + Object { + "author": "swyx", + "createdAt": 2020-02-16T05:20:59.000Z, + "numComments": 62, + "score": 143, + "title": "The unseen performance costs of modern CSS-in-JS libraries in React apps || Web Performance Calendar", + "url": "https://reddit.com/r/reactjs/comments/f4m4dh/the_unseen_performance_costs_of_modern_cssinjs/", + }, + ], + Array [ + Object { + "author": "afzalsayed96", + "createdAt": 2020-09-13T05:08:25.000Z, + "numComments": 47, + "score": 641, + "title": "I just published another vscode extension that allows you to search through 20+ free icon sets and paste them into your code all within the editor.", + "url": "https://reddit.com/r/reactjs/comments/irs96o/i_just_published_another_vscode_extension_that/", + }, + Object { + "author": "adrianperea", + "createdAt": 2020-06-14T05:57:43.000Z, + "numComments": 21, + "score": 163, + "title": "Just Finished My Portfolio Website Using Gatsby.js and my Genetic Algorithm Library, Genie.js", + "url": "https://reddit.com/r/reactjs/comments/h8ob6p/just_finished_my_portfolio_website_using_gatsbyjs/", + }, + ], + Array [ + Object { + "author": "rockiger", + "createdAt": 2020-06-28T06:33:40.000Z, + "numComments": 41, + "score": 300, + "title": "A highly scalable, performance focused React starter template, that focuses on best practices and a great developer experience.", + "url": "https://reddit.com/r/reactjs/comments/hh9rxn/a_highly_scalable_performance_focused_react/", + }, + Object { + "author": "CompetitiveFan", + "createdAt": 2020-07-26T06:13:09.000Z, + "numComments": 12, + "score": 121, + "title": "How to Create a Weather Widget with a Weather API", + "url": "https://reddit.com/r/reactjs/comments/hy1x7x/how_to_create_a_weather_widget_with_a_weather_api/", + }, + ], + Array [ + Object { + "author": "Paddyhallek", + "createdAt": 2020-06-21T07:21:13.000Z, + "numComments": 57, + "score": 1377, + "title": "I have built and open sourced an automated irrigation system based on Node.js and React", + "url": "https://reddit.com/r/reactjs/comments/hd2oaw/i_have_built_and_open_sourced_an_automated/", + }, + Object { + "author": "PickleRick104", + "createdAt": 2020-01-26T08:03:48.000Z, + "numComments": 59, + "score": 677, + "title": "Scan to Listen: React Native app for scanning CDs and vinyls to find album on Spotify and books to find audiobook on Audible", + "url": "https://reddit.com/r/reactjs/comments/eu416p/scan_to_listen_react_native_app_for_scanning_cds/", + }, + ], + Array [ + Object { + "author": "jones-macallan", + "createdAt": 2019-11-17T09:48:43.000Z, + "numComments": 30, + "score": 218, + "title": "Med-i: a health app built with React Native. Call national emergency numbers from anywhere, find nearby pharmacies, get medication for your symptoms and learn first aid steps in case of accidents and emergencies. [app links in the comment]", + "url": "https://reddit.com/r/reactjs/comments/dxkpf9/medi_a_health_app_built_with_react_native_call/", + }, + ], + Array [ + Object { + "author": "CodePerfect", + "createdAt": 2020-09-27T09:40:55.000Z, + "numComments": 20, + "score": 413, + "title": "The React Cheatsheet for 2020 📄‬ (+ real-world examples)", + "url": "https://reddit.com/r/reactjs/comments/j0oewq/the_react_cheatsheet_for_2020_realworld_examples/", + }, + Object { + "author": "fakiolinho", + "createdAt": 2020-05-03T09:22:56.000Z, + "numComments": 65, + "score": 221, + "title": "What the heck is React Fast Refresh", + "url": "https://reddit.com/r/reactjs/comments/gcnowt/what_the_heck_is_react_fast_refresh/", + }, + Object { + "author": "flatlogicsg", + "createdAt": 2020-08-02T09:48:05.000Z, + "numComments": 28, + "score": 139, + "title": "Svg Icons as React Components", + "url": "https://reddit.com/r/reactjs/comments/i29kg1/svg_icons_as_react_components/", + }, + Object { + "author": "andrewdovg", + "createdAt": 2020-04-19T09:21:07.000Z, + "numComments": 11, + "score": 133, + "title": "React Router Crash Course | Part#1 | Build Navbar, Home component & Footer | React Bootstrap", + "url": "https://reddit.com/r/reactjs/comments/g44scy/react_router_crash_course_part1_build_navbar_home/", + }, + ], + Array [ + Object { + "author": "iconof", + "createdAt": 2019-12-15T11:55:22.000Z, + "numComments": 36, + "score": 536, + "title": "My top React techtalks of 2019", + "url": "https://reddit.com/r/reactjs/comments/eay5cg/my_top_react_techtalks_of_2019/", + }, + Object { + "author": "selbekk", + "createdAt": 2019-12-22T11:33:05.000Z, + "numComments": 23, + "score": 169, + "title": "How I structure my React projects", + "url": "https://reddit.com/r/reactjs/comments/ee3yzy/how_i_structure_my_react_projects/", + }, + Object { + "author": "selbekk", + "createdAt": 2019-12-01T11:42:45.000Z, + "numComments": 13, + "score": 157, + "title": "Get in that declarative spirit with React Christmas 🎅", + "url": "https://reddit.com/r/reactjs/comments/e4gelh/get_in_that_declarative_spirit_with_react/", + }, + ], + Array [ + Object { + "author": "richpeopleshit", + "createdAt": 2020-08-09T11:59:11.000Z, + "numComments": 29, + "score": 260, + "title": "Anybody here interested in how React code talks to native code in a React Native app? If so, I made this short video explaining how it works.", + "url": "https://reddit.com/r/reactjs/comments/i6i64v/anybody_here_interested_in_how_react_code_talks/", + }, + Object { + "author": "cubef0x", + "createdAt": 2020-04-12T11:30:42.000Z, + "numComments": 28, + "score": 155, + "title": "How to build bulletproof react components", + "url": "https://reddit.com/r/reactjs/comments/fzv5ky/how_to_build_bulletproof_react_components/", + }, + ], + Array [ + Object { + "author": "riyaz942", + "createdAt": 2020-09-27T12:37:10.000Z, + "numComments": 141, + "score": 950, + "title": "Completed my portfolio website with react and react-spring for animations (link in the comments)", + "url": "https://reddit.com/r/reactjs/comments/j0qeau/completed_my_portfolio_website_with_react_and/", + }, + Object { + "author": "bmvantunes", + "createdAt": 2020-05-24T12:27:35.000Z, + "numComments": 20, + "score": 271, + "title": "Next.js Building a Car Trader App: All 6 videos now available =)", + "url": "https://reddit.com/r/reactjs/comments/gpovx1/nextjs_building_a_car_trader_app_all_6_videos_now/", + }, + Object { + "author": "Xiy", + "createdAt": 2020-03-22T13:45:06.000Z, + "numComments": 32, + "score": 271, + "title": "Compound Components in React w/Styled Components", + "url": "https://reddit.com/r/reactjs/comments/fn071f/compound_components_in_react_wstyled_components/", + }, + Object { + "author": "WellyShen", + "createdAt": 2020-02-09T13:04:35.000Z, + "numComments": 20, + "score": 267, + "title": "🎉 Introducing use-places-autocomplete: A React hook for Google Maps Places Autocomplete.", + "url": "https://reddit.com/r/reactjs/comments/f18dau/introducing_useplacesautocomplete_a_react_hook/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-05-10T12:17:36.000Z, + "numComments": 31, + "score": 231, + "title": "ReactSS - One tab to rule them all", + "url": "https://reddit.com/r/reactjs/comments/gh0hnw/reactss_one_tab_to_rule_them_all/", + }, + Object { + "author": "_Jsn_", + "createdAt": 2020-07-12T12:00:59.000Z, + "numComments": 26, + "score": 188, + "title": "Demo video for a rota application I've been working on using React/Django", + "url": "https://reddit.com/r/reactjs/comments/hptb8z/demo_video_for_a_rota_application_ive_been/", + }, + ], + Array [ + Object { + "author": "lrobinson2011", + "createdAt": 2020-08-30T13:14:04.000Z, + "numComments": 181, + "score": 278, + "title": "Why Next.js Is the Future of React", + "url": "https://reddit.com/r/reactjs/comments/ijchrc/why_nextjs_is_the_future_of_react/", + }, + Object { + "author": "danilowoz", + "createdAt": 2020-07-26T13:09:02.000Z, + "numComments": 17, + "score": 184, + "title": "Generating TypeScript types and React Hooks based on GraphQL endpoint", + "url": "https://reddit.com/r/reactjs/comments/hy6ngn/generating_typescript_types_and_react_hooks_based/", + }, + Object { + "author": "murimuffin", + "createdAt": 2019-12-08T14:11:45.000Z, + "numComments": 0, + "score": 173, + "title": "Creating an Animated Tree Chart – Using React (Hooks) with D3", + "url": "https://reddit.com/r/reactjs/comments/e7u4i1/creating_an_animated_tree_chart_using_react_hooks/", + }, + ], + Array [ + Object { + "author": "oldboyFX", + "createdAt": 2020-01-26T15:40:39.000Z, + "numComments": 62, + "score": 787, + "title": "Jira clone built with modern react. This is a great repository to learn from if you’ve already built smaller react apps and would like to see what a larger, real-world codebase looks like.", + "url": "https://reddit.com/r/reactjs/comments/eu86q9/jira_clone_built_with_modern_react_this_is_a/", + }, + Object { + "author": "simplyadesigner", + "createdAt": 2020-07-19T14:11:18.000Z, + "numComments": 114, + "score": 515, + "title": "My web app with 100+ beautiful, copy-paste-ready code sections is (ALMOST) here 🥳", + "url": "https://reddit.com/r/reactjs/comments/hu13hu/my_web_app_with_100_beautiful_copypasteready_code/", + }, + Object { + "author": "_MORSE_", + "createdAt": 2020-05-31T14:45:57.000Z, + "numComments": 30, + "score": 253, + "title": "Dokz - Effortless documentation with Next.js and MDX", + "url": "https://reddit.com/r/reactjs/comments/gu0cdm/dokz_effortless_documentation_with_nextjs_and_mdx/", + }, + Object { + "author": "itzzmeakhi", + "createdAt": 2020-09-20T14:57:40.000Z, + "numComments": 29, + "score": 134, + "title": "My first react library published to NPM registry!", + "url": "https://reddit.com/r/reactjs/comments/iwfbg8/my_first_react_library_published_to_npm_registry/", + }, + Object { + "author": "monosinplata", + "createdAt": 2020-05-17T14:50:12.000Z, + "numComments": 17, + "score": 116, + "title": "How To Mock Fetch in Jest (Covers React & React Testing Library)", + "url": "https://reddit.com/r/reactjs/comments/glgmy8/how_to_mock_fetch_in_jest_covers_react_react/", + }, + ], + Array [ + Object { + "author": "pi22a3", + "createdAt": 2020-07-05T15:15:22.000Z, + "numComments": 37, + "score": 906, + "title": "Liquid swipe", + "url": "https://reddit.com/r/reactjs/comments/hlo841/liquid_swipe/", + }, + Object { + "author": "Devistry", + "createdAt": 2020-04-26T15:58:45.000Z, + "numComments": 67, + "score": 261, + "title": "MERN stack user authentication: Part 1 | User accounts with JWT, bcrypt, react hooks, context API", + "url": "https://reddit.com/r/reactjs/comments/g8grge/mern_stack_user_authentication_part_1_user/", + }, + Object { + "author": "murimuffin", + "createdAt": 2019-11-03T16:18:23.000Z, + "numComments": 14, + "score": 170, + "title": "Using React (Hooks) with D3 – [06] Responsive Chart Components with ResizeObserver", + "url": "https://reddit.com/r/reactjs/comments/dr2l4i/using_react_hooks_with_d3_06_responsive_chart/", + }, + Object { + "author": "mclovin4009", + "createdAt": 2020-04-05T15:55:22.000Z, + "numComments": 18, + "score": 120, + "title": "Recently I pushed a major update to my long abandoned project, YouTube Remote, a chrome-extension for everyone to control their YouTube tabs from anywhere in the browser. It's free and offers more features that the default chrome audio remote!", + "url": "https://reddit.com/r/reactjs/comments/fvfxz3/recently_i_pushed_a_major_update_to_my_long/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-03-01T17:18:57.000Z, + "numComments": 120, + "score": 606, + "title": "React has been around as long as JQuery was when React came out (2468 days)", + "url": "https://reddit.com/r/reactjs/comments/fbx646/react_has_been_around_as_long_as_jquery_was_when/", + }, + Object { + "author": "Asian_named_Jack", + "createdAt": 2020-09-06T16:21:31.000Z, + "numComments": 17, + "score": 381, + "title": "I coded a Multiplayer Chess Game using React", + "url": "https://reddit.com/r/reactjs/comments/inou6r/i_coded_a_multiplayer_chess_game_using_react/", + }, + Object { + "author": "bitter-cognac", + "createdAt": 2019-10-13T16:10:56.000Z, + "numComments": 54, + "score": 172, + "title": "React: Lifting state up is killing your app", + "url": "https://reddit.com/r/reactjs/comments/dhck3y/react_lifting_state_up_is_killing_your_app/", + }, + Object { + "author": "murimuffin", + "createdAt": 2019-10-27T17:56:14.000Z, + "numComments": 3, + "score": 130, + "title": "Using React (Hooks) with D3 – [04] Animated Bar Chart", + "url": "https://reddit.com/r/reactjs/comments/dnwznf/using_react_hooks_with_d3_04_animated_bar_chart/", + }, + ], + Array [ + Object { + "author": "ryux-", + "createdAt": 2020-05-24T17:50:37.000Z, + "numComments": 49, + "score": 314, + "title": "Built a site to watch YouTube together with friends.", + "url": "https://reddit.com/r/reactjs/comments/gpu0gc/built_a_site_to_watch_youtube_together_with/", + }, + Object { + "author": "sim04ful", + "createdAt": 2020-02-02T18:27:40.000Z, + "numComments": 69, + "score": 296, + "title": "CoronaWatch - Built a website for monitoring the corona virus.", + "url": "https://reddit.com/r/reactjs/comments/exsoaq/coronawatch_built_a_website_for_monitoring_the/", + }, + Object { + "author": "DefinitelyNotALegend", + "createdAt": 2020-07-12T17:24:04.000Z, + "numComments": 43, + "score": 292, + "title": "FUCK YEAH. I just made my first MERN stack application.", + "url": "https://reddit.com/r/reactjs/comments/hpy5dj/fuck_yeah_i_just_made_my_first_mern_stack/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-20T17:46:13.000Z, + "numComments": 41, + "score": 289, + "title": "Announcing TinaCMS: open-source, real time site editing toolkit for React based frameworks like Gatsby and Next.js", + "url": "https://reddit.com/r/reactjs/comments/dkmy4e/announcing_tinacms_opensource_real_time_site/", + }, + Object { + "author": "abhirathmahipal", + "createdAt": 2020-08-02T17:41:15.000Z, + "numComments": 34, + "score": 266, + "title": "Learning to Think in React by Building a Shopping Cart using Vanilla JS and then React", + "url": "https://reddit.com/r/reactjs/comments/i2g4mt/learning_to_think_in_react_by_building_a_shopping/", + }, + Object { + "author": "Tolgeros", + "createdAt": 2019-11-24T18:48:02.000Z, + "numComments": 72, + "score": 170, + "title": "In Defense of Class Components", + "url": "https://reddit.com/r/reactjs/comments/e12ma4/in_defense_of_class_components/", + }, + ], + Array [ + Object { + "author": "Raitug", + "createdAt": 2020-05-10T18:56:02.000Z, + "numComments": 66, + "score": 789, + "title": "Synchronized YouTube Player built in react", + "url": "https://reddit.com/r/reactjs/comments/gh76ez/synchronized_youtube_player_built_in_react/", + }, + Object { + "author": "theshubhagrwl", + "createdAt": 2020-06-14T18:30:26.000Z, + "numComments": 26, + "score": 334, + "title": "Made a simple App with Reddit API", + "url": "https://reddit.com/r/reactjs/comments/h8yzdv/made_a_simple_app_with_reddit_api/", + }, + Object { + "author": "RandomHackerGenius", + "createdAt": 2020-03-15T19:43:59.000Z, + "numComments": 32, + "score": 299, + "title": "Do something to lower worlds healthcare cost", + "url": "https://reddit.com/r/reactjs/comments/fj76zf/do_something_to_lower_worlds_healthcare_cost/", + }, + Object { + "author": "careseite", + "createdAt": 2020-04-19T18:58:37.000Z, + "numComments": 21, + "score": 211, + "title": "How to IDE-ify your GitHub", + "url": "https://reddit.com/r/reactjs/comments/g4d7gw/how_to_ideify_your_github/", + }, + Object { + "author": "parvezvai", + "createdAt": 2020-02-23T19:05:08.000Z, + "numComments": 40, + "score": 151, + "title": "My very first React+GatsbyJS powered live website", + "url": "https://reddit.com/r/reactjs/comments/f8e0q7/my_very_first_reactgatsbyjs_powered_live_website/", + }, + Object { + "author": "dance2die", + "createdAt": 2019-12-29T19:55:14.000Z, + "numComments": 42, + "score": 144, + "title": "Don't call a React function component - Kent C. Dodds", + "url": "https://reddit.com/r/reactjs/comments/ehakcb/dont_call_a_react_function_component_kent_c_dodds/", + }, + ], + Array [ + Object { + "author": "JackBullenskie", + "createdAt": 2020-06-07T19:01:04.000Z, + "numComments": 26, + "score": 266, + "title": "How a React App Works Under the Hood", + "url": "https://reddit.com/r/reactjs/comments/gyi59w/how_a_react_app_works_under_the_hood/", + }, + Object { + "author": "Bratua", + "createdAt": 2020-03-08T20:24:59.000Z, + "numComments": 22, + "score": 125, + "title": "react-loaders-kit", + "url": "https://reddit.com/r/reactjs/comments/ffii68/reactloaderskit/", + }, + ], + Array [ + Object { + "author": "legitcode", + "createdAt": 2020-01-05T21:39:12.000Z, + "numComments": 23, + "score": 232, + "title": "I build an open api lists repository", + "url": "https://reddit.com/r/reactjs/comments/ekjfqc/i_build_an_open_api_lists_repository/", + }, + Object { + "author": "theanubhav", + "createdAt": 2019-12-22T21:23:25.000Z, + "numComments": 126, + "score": 228, + "title": "On let vs const", + "url": "https://reddit.com/r/reactjs/comments/eeajd7/on_let_vs_const/", + }, + ], + Array [ + Object { + "author": "M_Nightly", + "createdAt": 2020-04-12T21:12:27.000Z, + "numComments": 39, + "score": 397, + "title": "Introducing Signum, an open-source communication tool for your website.", + "url": "https://reddit.com/r/reactjs/comments/g04x9z/introducing_signum_an_opensource_communication/", + }, + Object { + "author": "feje", + "createdAt": 2019-11-17T22:08:16.000Z, + "numComments": 64, + "score": 189, + "title": "I've created a library to make transitions between React router pages", + "url": "https://reddit.com/r/reactjs/comments/dxtgta/ive_created_a_library_to_make_transitions_between/", + }, + Object { + "author": "Cellahore", + "createdAt": 2020-04-05T21:58:18.000Z, + "numComments": 69, + "score": 178, + "title": "I built my first website in ReactJS while in self isolation! A coronavirus stats tracker!", + "url": "https://reddit.com/r/reactjs/comments/fvmass/i_built_my_first_website_in_reactjs_while_in_self/", + }, + Object { + "author": "singhshweta", + "createdAt": 2020-08-16T21:02:40.000Z, + "numComments": 24, + "score": 159, + "title": "Few ways to boost your react applications performance", + "url": "https://reddit.com/r/reactjs/comments/ib0d5v/few_ways_to_boost_your_react_applications/", + }, + ], ], Array [ - 1, - 2, - 2, - 0, - 3, - 0, - 2, - 2, - 2, - 1, - 1, - 4, - 0, - 6, - 6, - 7, - 7, - 3, - 5, - 3, - 7, - 4, - 6, - 0, + Array [ + Object { + "author": "swyx", + "createdAt": 2019-12-01T23:18:02.000Z, + "numComments": 29, + "score": 169, + "title": "\\"Framework Overhead\\" is bikeshedding - React is only 8% of execution time on real apps, but ~90% on benchmarks. Most apps are not \\"framework bound\\" (Sebastian Markbåge on Twitter)", + "url": "https://reddit.com/r/reactjs/comments/e4pool/framework_overhead_is_bikeshedding_react_is_only/", + }, + ], + Array [ + Object { + "author": "0ni0ncuttingninja", + "createdAt": 2020-07-19T23:39:51.000Z, + "numComments": 30, + "score": 305, + "title": "Hi everyone, I have been working on this file upload UI. Have been following some references and trying to improve on it.", + "url": "https://reddit.com/r/reactjs/comments/huappa/hi_everyone_i_have_been_working_on_this_file/", + }, + Object { + "author": "jetonk", + "createdAt": 2019-11-11T00:28:44.000Z, + "numComments": 19, + "score": 241, + "title": "Github Mobile App - Built with React Native and Redux", + "url": "https://reddit.com/r/reactjs/comments/duk6ck/github_mobile_app_built_with_react_native_and/", + }, + ], + Array [ + Object { + "author": "aschonfe", + "createdAt": 2020-05-04T00:43:45.000Z, + "numComments": 34, + "score": 263, + "title": "Was able to make my react-virtualized MultiGrid cells editable with only one double-click listener! #quarantinegoals", + "url": "https://reddit.com/r/reactjs/comments/gd1q5g/was_able_to_make_my_reactvirtualized_multigrid/", + }, + Object { + "author": "pawnh4", + "createdAt": 2020-06-29T00:15:53.000Z, + "numComments": 34, + "score": 165, + "title": "I have a good corporate job not programming but I taught myself js and react for fun and I just kind of like it.", + "url": "https://reddit.com/r/reactjs/comments/hhplsv/i_have_a_good_corporate_job_not_programming_but_i/", + }, + ], + Array [], + Array [ + Object { + "author": "[deleted]", + "createdAt": 2019-12-09T03:45:18.000Z, + "numComments": 65, + "score": 189, + "title": "What are some mini React challenges that may come up in a Junior Front-end Interview?", + "url": "https://reddit.com/r/reactjs/comments/e84h6k/what_are_some_mini_react_challenges_that_may_come/", + }, + Object { + "author": "iqball125", + "createdAt": 2020-07-27T02:16:33.000Z, + "numComments": 25, + "score": 173, + "title": "React Complete testing tutorial", + "url": "https://reddit.com/r/reactjs/comments/hyjq81/react_complete_testing_tutorial/", + }, + Object { + "author": "aej11a", + "createdAt": 2019-11-25T03:53:21.000Z, + "numComments": 107, + "score": 154, + "title": "What is the most impressive React-based site you've seen?", + "url": "https://reddit.com/r/reactjs/comments/e1ac7p/what_is_the_most_impressive_reactbased_site_youve/", + }, + ], + Array [], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-02-17T05:49:39.000Z, + "numComments": 93, + "score": 651, + "title": "React Router v6 will be 2.9kb - 70% smaller because of Hooks and other factors", + "url": "https://reddit.com/r/reactjs/comments/f543xl/react_router_v6_will_be_29kb_70_smaller_because/", + }, + Object { + "author": "ironsoul0", + "createdAt": 2020-02-03T05:38:22.000Z, + "numComments": 52, + "score": 141, + "title": "Full-stack web app in React + TypeScript + GraphQL + PostgreSQL", + "url": "https://reddit.com/r/reactjs/comments/ey282l/fullstack_web_app_in_react_typescript_graphql/", + }, + ], + Array [ + Object { + "author": "GreenWithMV", + "createdAt": 2020-09-21T05:57:18.000Z, + "numComments": 47, + "score": 370, + "title": "My First Large React App: Travel Map for saving cities/countries visited", + "url": "https://reddit.com/r/reactjs/comments/iwup06/my_first_large_react_app_travel_map_for_saving/", + }, + Object { + "author": "lucasmrl", + "createdAt": 2020-06-01T05:26:22.000Z, + "numComments": 77, + "score": 198, + "title": "[Show off] Second \\"full-stack\\" app - Roomie - Find a room to rent! Built with: React + TailwindCSS + Express + MongoDB + Heroku / S3", + "url": "https://reddit.com/r/reactjs/comments/guembv/show_off_second_fullstack_app_roomie_find_a_room/", + }, + ], + Array [ + Object { + "author": "ginger-julia", + "createdAt": 2020-04-06T06:11:02.000Z, + "numComments": 74, + "score": 199, + "title": "React Libraries in 2020", + "url": "https://reddit.com/r/reactjs/comments/fvteil/react_libraries_in_2020/", + }, + Object { + "author": "limdongwon", + "createdAt": 2020-01-20T07:52:45.000Z, + "numComments": 28, + "score": 146, + "title": "React hook that helps developers use google spreadsheet as their data table (API endpoint)", + "url": "https://reddit.com/r/reactjs/comments/era6xf/react_hook_that_helps_developers_use_google/", + }, + ], + Array [ + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-06-22T07:40:32.000Z, + "numComments": 85, + "score": 802, + "title": "Instagram using MERN stack", + "url": "https://reddit.com/r/reactjs/comments/hdnsn4/instagram_using_mern_stack/", + }, + ], + Array [ + Object { + "author": "mikaelainalem", + "createdAt": 2020-08-03T08:01:16.000Z, + "numComments": 49, + "score": 987, + "title": "Pull to refresh, velocity-based morphing SVGs with react-spring", + "url": "https://reddit.com/r/reactjs/comments/i2t2ww/pull_to_refresh_velocitybased_morphing_svgs_with/", + }, + ], + Array [ + Object { + "author": "yjose", + "createdAt": 2020-09-07T09:12:13.000Z, + "numComments": 57, + "score": 465, + "title": "reactjs-popup v2 is Here 🎉🎉: Modals, Tooltips and Menus - All in one (3kb)", + "url": "https://reddit.com/r/reactjs/comments/io4995/reactjspopup_v2_is_here_modals_tooltips_and_menus/", + }, + Object { + "author": "freibergg", + "createdAt": 2020-07-20T09:58:29.000Z, + "numComments": 32, + "score": 233, + "title": "UI Playbook — the documented collection of UI components", + "url": "https://reddit.com/r/reactjs/comments/huimrb/ui_playbook_the_documented_collection_of_ui/", + }, + Object { + "author": "Ms-mousa", + "createdAt": 2020-02-24T10:07:58.000Z, + "numComments": 31, + "score": 165, + "title": "Learn the basics of React-Dnd. easily add Drag and Drop interactions to your apps!", + "url": "https://reddit.com/r/reactjs/comments/f8p669/learn_the_basics_of_reactdnd_easily_add_drag_and/", + }, + Object { + "author": "CulturallyOffensive", + "createdAt": 2019-11-18T10:59:03.000Z, + "numComments": 88, + "score": 152, + "title": "My updated portfolio site", + "url": "https://reddit.com/r/reactjs/comments/dy1q0t/my_updated_portfolio_site/", + }, + ], + Array [], + Array [ + Object { + "author": "giraffenhut", + "createdAt": 2020-03-30T11:41:05.000Z, + "numComments": 36, + "score": 684, + "title": "Learning React.js during this quarantine. Here's a simple memory game I made", + "url": "https://reddit.com/r/reactjs/comments/frp8ls/learning_reactjs_during_this_quarantine_heres_a/", + }, + Object { + "author": "njiv", + "createdAt": 2020-08-24T11:54:29.000Z, + "numComments": 13, + "score": 474, + "title": "JS/TS Debugger with Time-Traveling, Hot-swapping, API and Persistent State, zero-config for create-react-app projects (VSCode plugin)", + "url": "https://reddit.com/r/reactjs/comments/ifnj3m/jsts_debugger_with_timetraveling_hotswapping_api/", + }, + Object { + "author": "jameskingio", + "createdAt": 2019-10-28T12:53:25.000Z, + "numComments": 9, + "score": 195, + "title": "Understanding the Context API by Building a Spotify Clone in React", + "url": "https://reddit.com/r/reactjs/comments/do8fcz/understanding_the_context_api_by_building_a/", + }, + Object { + "author": "Matchsnack", + "createdAt": 2020-06-15T11:02:44.000Z, + "numComments": 63, + "score": 168, + "title": "So, has anyone had a chance to try out Recoil yet? Coming from some pretty Redux/React.Context heavy projects this seems like a more convenient way of coding? Especially when using hooks and FCs.", + "url": "https://reddit.com/r/reactjs/comments/h9e4ca/so_has_anyone_had_a_chance_to_try_out_recoil_yet/", + }, + Object { + "author": "turbohedgehog", + "createdAt": 2020-09-28T11:38:06.000Z, + "numComments": 76, + "score": 165, + "title": "Is Firebase better than Express + MongoDB", + "url": "https://reddit.com/r/reactjs/comments/j1adu9/is_firebase_better_than_express_mongodb/", + }, + Object { + "author": "pedrobern", + "createdAt": 2020-02-17T12:02:24.000Z, + "numComments": 12, + "score": 136, + "title": "Full page transitions example", + "url": "https://reddit.com/r/reactjs/comments/f57s4b/full_page_transitions_example/", + }, + ], + Array [ + Object { + "author": "Agreon", + "createdAt": 2020-05-11T12:37:39.000Z, + "numComments": 63, + "score": 669, + "title": "A VS-Code extension to refactor HTML-Tags with style-props to styled components", + "url": "https://reddit.com/r/reactjs/comments/ghmrbg/a_vscode_extension_to_refactor_htmltags_with/", + }, + Object { + "author": "deven_rathore", + "createdAt": 2020-08-31T12:56:44.000Z, + "numComments": 5, + "score": 157, + "title": "Build a TikTok Clone with React and Firebase - CodeSource.io", + "url": "https://reddit.com/r/reactjs/comments/ijxgwj/build_a_tiktok_clone_with_react_and_firebase/", + }, + Object { + "author": "ComfortableEye5", + "createdAt": 2020-08-17T12:21:53.000Z, + "numComments": 28, + "score": 148, + "title": "I made a React app with an interactive map that features all the bike lanes, bike parking spots, services and etc. for my city.", + "url": "https://reddit.com/r/reactjs/comments/ibd3gu/i_made_a_react_app_with_an_interactive_map_that/", + }, + Object { + "author": "brombergmedia", + "createdAt": 2019-12-09T13:31:00.000Z, + "numComments": 63, + "score": 136, + "title": "Favorite YouTubers to learn react?", + "url": "https://reddit.com/r/reactjs/comments/e89zb2/favorite_youtubers_to_learn_react/", + }, + Object { + "author": "CodingCraig", + "createdAt": 2020-05-25T12:24:43.000Z, + "numComments": 24, + "score": 126, + "title": "I rewrote my command prompt / terminal inspired website using React", + "url": "https://reddit.com/r/reactjs/comments/gqa2xd/i_rewrote_my_command_prompt_terminal_inspired/", + }, + Object { + "author": "swyx", + "createdAt": 2020-01-20T13:24:38.000Z, + "numComments": 37, + "score": 122, + "title": "The Opinionated Guide to React - new book by Sara Viera - Folder Structure, CRA/Next/Gatsby, TypeScript, Routing, State Mgmt, Animation, Styling, Forms, Dates, GraphQL and UI Toolkits", + "url": "https://reddit.com/r/reactjs/comments/erd5ox/the_opinionated_guide_to_react_new_book_by_sara/", + }, + ], + Array [ + Object { + "author": "TowhidKashem", + "createdAt": 2020-07-13T13:51:41.000Z, + "numComments": 77, + "score": 1163, + "title": "I made a Snapchat clone in the browser!", + "url": "https://reddit.com/r/reactjs/comments/hqfm86/i_made_a_snapchat_clone_in_the_browser/", + }, + Object { + "author": "OkDiscount", + "createdAt": 2020-09-14T13:13:26.000Z, + "numComments": 77, + "score": 530, + "title": "My first MERN project!!!", + "url": "https://reddit.com/r/reactjs/comments/isklgf/my_first_mern_project/", + }, + Object { + "author": "stevezease", + "createdAt": 2020-05-04T13:42:47.000Z, + "numComments": 46, + "score": 497, + "title": "I made a quick React and Redux interview cheat sheet for 2020", + "url": "https://reddit.com/r/reactjs/comments/gdbua0/i_made_a_quick_react_and_redux_interview_cheat/", + }, + Object { + "author": "PistachioPlz", + "createdAt": 2019-12-23T14:15:55.000Z, + "numComments": 22, + "score": 468, + "title": "This helped me understand React, Webpack and Babel setups. Detailed guide to get started", + "url": "https://reddit.com/r/reactjs/comments/eel46d/this_helped_me_understand_react_webpack_and_babel/", + }, + Object { + "author": "joshwcomeau", + "createdAt": 2020-04-20T13:20:08.000Z, + "numComments": 38, + "score": 194, + "title": "The Quest for the Perfect Dark Mode", + "url": "https://reddit.com/r/reactjs/comments/g4sn5r/the_quest_for_the_perfect_dark_mode/", + }, + Object { + "author": "intheforgeofwords", + "createdAt": 2019-12-16T14:30:09.000Z, + "numComments": 44, + "score": 189, + "title": "Why you should implement query fragments in Gatsby", + "url": "https://reddit.com/r/reactjs/comments/ebftsa/why_you_should_implement_query_fragments_in_gatsby/", + }, + Object { + "author": "CodeTutorials", + "createdAt": 2019-12-30T14:22:48.000Z, + "numComments": 42, + "score": 152, + "title": "React Remains Top UI Library - A Recap of Frontend Development in 2019", + "url": "https://reddit.com/r/reactjs/comments/ehmlv0/react_remains_top_ui_library_a_recap_of_frontend/", + }, + ], + Array [ + Object { + "author": "karimelghamry", + "createdAt": 2020-07-27T14:11:51.000Z, + "numComments": 35, + "score": 544, + "title": "GraphAV - A graph algorithms visualizer built using React and Typescript (links in comments)", + "url": "https://reddit.com/r/reactjs/comments/hysz84/graphav_a_graph_algorithms_visualizer_built_using/", + }, + Object { + "author": "magenta_placenta", + "createdAt": 2020-07-06T14:32:45.000Z, + "numComments": 19, + "score": 260, + "title": "Building an isometric frogger style game with React and Recoil", + "url": "https://reddit.com/r/reactjs/comments/hm8pj0/building_an_isometric_frogger_style_game_with/", + }, + Object { + "author": "hashimwarren", + "createdAt": 2020-02-10T15:50:32.000Z, + "numComments": 17, + "score": 232, + "title": "JavaScript frameworks are pushing each other to improve accessibility", + "url": "https://reddit.com/r/reactjs/comments/f1s64i/javascript_frameworks_are_pushing_each_other_to/", + }, + Object { + "author": "FlorinPop17", + "createdAt": 2020-01-06T15:15:38.000Z, + "numComments": 30, + "score": 226, + "title": "Timeline Component in React (and some CSS Magic 🎩)", + "url": "https://reddit.com/r/reactjs/comments/ekvep1/timeline_component_in_react_and_some_css_magic/", + }, + Object { + "author": "dance2die", + "createdAt": 2019-11-11T15:31:11.000Z, + "numComments": 51, + "score": 202, + "title": "Why Suspense matters, a short thread - Dan Abramov on Twitter", + "url": "https://reddit.com/r/reactjs/comments/dutxnh/why_suspense_matters_a_short_thread_dan_abramov/", + }, + Object { + "author": "dance2die", + "createdAt": 2019-12-02T15:48:27.000Z, + "numComments": 24, + "score": 138, + "title": "Dan discusses benchmarks in JavaScript community", + "url": "https://reddit.com/r/reactjs/comments/e50uoj/dan_discusses_benchmarks_in_javascript_community/", + }, + Object { + "author": "beizhedenglong", + "createdAt": 2019-10-14T14:08:10.000Z, + "numComments": 18, + "score": 130, + "title": "📈 A responsive, composable react charting chart library with a hand-drawn style.", + "url": "https://reddit.com/r/reactjs/comments/dhr26f/a_responsive_composable_react_charting_chart/", + }, + ], + Array [ + Object { + "author": "s____s___", + "createdAt": 2019-10-21T15:09:22.000Z, + "numComments": 40, + "score": 599, + "title": "I made a visual programmer for javascript", + "url": "https://reddit.com/r/reactjs/comments/dl1wcy/i_made_a_visual_programmer_for_javascript/", + }, + Object { + "author": "fabiospampinato", + "createdAt": 2020-05-18T15:29:43.000Z, + "numComments": 73, + "score": 152, + "title": "Store - The cleanest state management library I could come up with - very few APIs, UI-framework agnostic, TypeScript support with no effort, fast by default", + "url": "https://reddit.com/r/reactjs/comments/gm3kx8/store_the_cleanest_state_management_library_i/", + }, + Object { + "author": "joshwcomeau", + "createdAt": 2020-04-13T15:05:45.000Z, + "numComments": 16, + "score": 131, + "title": "CSS Variables for React Developers", + "url": "https://reddit.com/r/reactjs/comments/g0ko78/css_variables_for_react_developers/", + }, + ], + Array [ + Object { + "author": "pi22a3", + "createdAt": 2020-05-25T16:01:48.000Z, + "numComments": 35, + "score": 658, + "title": "Select Payment (Swipe Card)", + "url": "https://reddit.com/r/reactjs/comments/gqdk6h/select_payment_swipe_card/", + }, + Object { + "author": "dance2die", + "createdAt": 2020-03-16T17:12:31.000Z, + "numComments": 67, + "score": 462, + "title": "npm is joining GitHub - The GitHub Blog", + "url": "https://reddit.com/r/reactjs/comments/fjofxn/npm_is_joining_github_the_github_blog/", + }, + Object { + "author": "swyx", + "createdAt": 2020-02-03T17:31:03.000Z, + "numComments": 84, + "score": 291, + "title": "useEffect(fn, []) is not the new componentDidMount()", + "url": "https://reddit.com/r/reactjs/comments/eyajhv/useeffectfn_is_not_the_new_componentdidmount/", + }, + Object { + "author": "swyx", + "createdAt": 2020-03-02T17:26:41.000Z, + "numComments": 41, + "score": 205, + "title": "React Hook Form: Performant, flexible and extensible forms with easy-to-use validation", + "url": "https://reddit.com/r/reactjs/comments/fcfi1b/react_hook_form_performant_flexible_and/", + }, + Object { + "author": "jeffersonlicet", + "createdAt": 2020-03-23T17:35:36.000Z, + "numComments": 33, + "score": 198, + "title": "I've created a small package where you can link similar components together to animate them when changing views. Feedback appreciated. 🙌", + "url": "https://reddit.com/r/reactjs/comments/fno2q4/ive_created_a_small_package_where_you_can_link/", + }, + ], + Array [ + Object { + "author": "46548fdg54", + "createdAt": 2020-09-21T17:34:55.000Z, + "numComments": 48, + "score": 1067, + "title": "A responsive multi-level menu component I created using react hooks", + "url": "https://reddit.com/r/reactjs/comments/ix52xu/a_responsive_multilevel_menu_component_i_created/", + }, + Object { + "author": "james2406", + "createdAt": 2020-01-13T18:30:43.000Z, + "numComments": 78, + "score": 337, + "title": "Styled components v5.0.0 released", + "url": "https://reddit.com/r/reactjs/comments/eo839o/styled_components_v500_released/", + }, + Object { + "author": "swizec", + "createdAt": 2020-05-18T17:28:29.000Z, + "numComments": 39, + "score": 225, + "title": "Add role-based permissions to your React app", + "url": "https://reddit.com/r/reactjs/comments/gm5wlt/add_rolebased_permissions_to_your_react_app/", + }, + ], + Array [ + Object { + "author": "JL978", + "createdAt": 2020-08-31T18:50:46.000Z, + "numComments": 107, + "score": 960, + "title": "I created a Spotify clone", + "url": "https://reddit.com/r/reactjs/comments/ik40e2/i_created_a_spotify_clone/", + }, + Object { + "author": "mikasarei", + "createdAt": 2020-06-29T18:38:14.000Z, + "numComments": 51, + "score": 931, + "title": "A one minute Demo of an app I made with React", + "url": "https://reddit.com/r/reactjs/comments/hi5qhh/a_one_minute_demo_of_an_app_i_made_with_react/", + }, + Object { + "author": "ivan_itchybum", + "createdAt": 2020-06-15T18:50:24.000Z, + "numComments": 84, + "score": 368, + "title": "The React docs are tremendous!", + "url": "https://reddit.com/r/reactjs/comments/h9mat4/the_react_docs_are_tremendous/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-14T18:02:58.000Z, + "numComments": 63, + "score": 249, + "title": "Announcing Ionic React: a native React version of Ionic Framework that makes it easy to build apps for iOS, Android, Desktop, and the web as a PWA with Over 100 React components", + "url": "https://reddit.com/r/reactjs/comments/dhuee7/announcing_ionic_react_a_native_react_version_of/", + }, + Object { + "author": "tyler-mcginnis", + "createdAt": 2020-08-17T18:00:50.000Z, + "numComments": 13, + "score": 177, + "title": "Understanding React's useRef Hook", + "url": "https://reddit.com/r/reactjs/comments/ibj8ls/understanding_reacts_useref_hook/", + }, + Object { + "author": "monosinplata", + "createdAt": 2020-01-27T19:31:41.000Z, + "numComments": 15, + "score": 166, + "title": "Mastering SEO in React and Next.js", + "url": "https://reddit.com/r/reactjs/comments/euszet/mastering_seo_in_react_and_nextjs/", + }, + Object { + "author": "AsSimple", + "createdAt": 2020-05-25T18:17:02.000Z, + "numComments": 15, + "score": 141, + "title": "I made a Kanban boards app with React & Django (open-source) https://github.com/rrebase/knboard", + "url": "https://reddit.com/r/reactjs/comments/gqg3t1/i_made_a_kanban_boards_app_with_react_django/", + }, + ], + Array [ + Object { + "author": "rcbyr", + "createdAt": 2020-06-08T19:52:31.000Z, + "numComments": 74, + "score": 424, + "title": "keen-slider - The HTML touch slider carousel with the most native feeling.", + "url": "https://reddit.com/r/reactjs/comments/gz6ixb/keenslider_the_html_touch_slider_carousel_with/", + }, + Object { + "author": "shz", + "createdAt": 2019-10-28T20:49:23.000Z, + "numComments": 38, + "score": 323, + "title": "SWR: React Hooks for Remote Data Fetching", + "url": "https://reddit.com/r/reactjs/comments/dof452/swr_react_hooks_for_remote_data_fetching/", + }, + Object { + "author": "scopsy", + "createdAt": 2020-03-09T20:42:25.000Z, + "numComments": 70, + "score": 234, + "title": "Next.js released v9.3.0", + "url": "https://reddit.com/r/reactjs/comments/fg1h31/nextjs_released_v930/", + }, + Object { + "author": "brodega", + "createdAt": 2019-11-04T20:59:15.000Z, + "numComments": 51, + "score": 211, + "title": "Data Fetching Best Practices", + "url": "https://reddit.com/r/reactjs/comments/dro2ud/data_fetching_best_practices/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-06-01T20:48:44.000Z, + "numComments": 127, + "score": 914, + "title": "React Core Team joins Facebook Employee Walkout", + "url": "https://reddit.com/r/reactjs/comments/gusp7u/react_core_team_joins_facebook_employee_walkout/", + }, + Object { + "author": "pi22a3", + "createdAt": 2020-07-06T20:44:18.000Z, + "numComments": 36, + "score": 818, + "title": "3D skateboard swipe (threejs & react-spring)", + "url": "https://reddit.com/r/reactjs/comments/hmg410/3d_skateboard_swipe_threejs_reactspring/", + }, + Object { + "author": "maxs_dev", + "createdAt": 2020-04-27T20:07:15.000Z, + "numComments": 21, + "score": 568, + "title": "Declarative Magnet Animation w/ Framer Motion", + "url": "https://reddit.com/r/reactjs/comments/g98ads/declarative_magnet_animation_w_framer_motion/", + }, + Object { + "author": "brianvaughn", + "createdAt": 2020-08-10T20:32:16.000Z, + "numComments": 104, + "score": 379, + "title": "React v17.0 Release Candidate: No New Features", + "url": "https://reddit.com/r/reactjs/comments/i7cygu/react_v170_release_candidate_no_new_features/", + }, + Object { + "author": "aurbano", + "createdAt": 2020-04-13T20:07:14.000Z, + "numComments": 46, + "score": 185, + "title": "We made a website where people can talk to others in a small group - hopefully this helps with isolation!", + "url": "https://reddit.com/r/reactjs/comments/g0qjxc/we_made_a_website_where_people_can_talk_to_others/", + }, + Object { + "author": "combarnea", + "createdAt": 2019-10-07T20:01:43.000Z, + "numComments": 28, + "score": 152, + "title": "🎉🎁🎊 zeit/next.js released v9.1.0", + "url": "https://reddit.com/r/reactjs/comments/deouhl/zeitnextjs_released_v910/", + }, + ], + Array [], ], Array [ - 5, - 1, - 3, - 2, - 1, - 2, - 0, - 1, - 2, - 3, - 2, - 4, - 2, - 1, - 7, - 9, - 3, - 4, - 3, - 4, - 8, - 2, - 0, - 2, + Array [ + Object { + "author": "beandiponaisle7", + "createdAt": 2020-09-28T22:02:24.000Z, + "numComments": 57, + "score": 413, + "title": "First React project -- COVID-19 Testing Location Finder", + "url": "https://reddit.com/r/reactjs/comments/j1m0gc/first_react_project_covid19_testing_location/", + }, + Object { + "author": "hobonumber1", + "createdAt": 2020-02-24T23:46:58.000Z, + "numComments": 117, + "score": 275, + "title": "I built this website that suggests places that you can travel with your passport using React and NextJS.", + "url": "https://reddit.com/r/reactjs/comments/f90oi9/i_built_this_website_that_suggests_places_that/", + }, + Object { + "author": "painya", + "createdAt": 2020-01-20T23:47:15.000Z, + "numComments": 99, + "score": 232, + "title": "To those who recommend beginners learn to build projects in Vanilla js...", + "url": "https://reddit.com/r/reactjs/comments/erm07o/to_those_who_recommend_beginners_learn_to_build/", + }, + Object { + "author": "intrepidev", + "createdAt": 2019-11-18T23:21:11.000Z, + "numComments": 46, + "score": 219, + "title": "I made on offline notetaking app using hooks, indexeddb, material-ui, and redux with support for markdown. Notes are stored locally for maximum privacy. Looking to improve https://www.ofnote.site", + "url": "https://reddit.com/r/reactjs/comments/dybh9n/i_made_on_offline_notetaking_app_using_hooks/", + }, + Object { + "author": "cawfree", + "createdAt": 2020-02-17T23:50:46.000Z, + "numComments": 31, + "score": 135, + "title": "I has fun making this little dark mode toggle!", + "url": "https://reddit.com/r/reactjs/comments/f5i7zc/i_has_fun_making_this_little_dark_mode_toggle/", + }, + ], + Array [ + Object { + "author": "utunga", + "createdAt": 2020-04-06T23:36:58.000Z, + "numComments": 30, + "score": 235, + "title": "Come help build our open source react web app for organizing food delivery and volunteering #COVID-19", + "url": "https://reddit.com/r/reactjs/comments/fw9m46/come_help_build_our_open_source_react_web_app_for/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2019-11-26T01:30:13.000Z, + "numComments": 28, + "score": 156, + "title": "Next.js Static Site Generation RFC", + "url": "https://reddit.com/r/reactjs/comments/e1qior/nextjs_static_site_generation_rfc/", + }, + Object { + "author": "swyx", + "createdAt": 2020-03-03T01:57:44.000Z, + "numComments": 26, + "score": 149, + "title": "Countering React Native FUD: There are more than 750 screens in both Facebook for Android and iOS as well as several standalone apps primarily built using RN, at FB", + "url": "https://reddit.com/r/reactjs/comments/fcn8zm/countering_react_native_fud_there_are_more_than/", + }, + Object { + "author": "swyx", + "createdAt": 2019-11-12T01:16:24.000Z, + "numComments": 26, + "score": 122, + "title": "React Adaptive Loading Hooks - from Google Chrome (released at Chrome Dev Summit)", + "url": "https://reddit.com/r/reactjs/comments/dv2hly/react_adaptive_loading_hooks_from_google_chrome/", + }, + ], + Array [ + Object { + "author": "mcao", + "createdAt": 2020-08-18T01:18:46.000Z, + "numComments": 66, + "score": 1133, + "title": "I created an open-source alternative to Google Analytics using React, Redux and Next.js", + "url": "https://reddit.com/r/reactjs/comments/ibrd14/i_created_an_opensource_alternative_to_google/", + }, + Object { + "author": "puschaR", + "createdAt": 2019-12-10T02:12:29.000Z, + "numComments": 52, + "score": 195, + "title": "Simple budgeting application for shared expenses (React + Redux + Firebase)", + "url": "https://reddit.com/r/reactjs/comments/e8k2ju/simple_budgeting_application_for_shared_expenses/", + }, + ], + Array [ + Object { + "author": "albaneso", + "createdAt": 2020-05-12T02:02:39.000Z, + "numComments": 99, + "score": 2575, + "title": "Interactive pay-card using react hooks", + "url": "https://reddit.com/r/reactjs/comments/gi1rsc/interactive_paycard_using_react_hooks/", + }, + ], + Array [ + Object { + "author": "singsong43", + "createdAt": 2020-01-07T04:54:45.000Z, + "numComments": 41, + "score": 355, + "title": "I created a Microservices app created using React/Node.js/GraphQL/Docker, along with a full tutorial on how to build it", + "url": "https://reddit.com/r/reactjs/comments/el6lkq/i_created_a_microservices_app_created_using/", + }, + Object { + "author": "sa963", + "createdAt": 2020-01-28T04:12:54.000Z, + "numComments": 42, + "score": 260, + "title": "Found this Full Stack Tutorial on React + Web API. Must Watch for Beginners - 2 Hr Duration", + "url": "https://reddit.com/r/reactjs/comments/ev0cp7/found_this_full_stack_tutorial_on_react_web_api/", + }, + ], + Array [], + Array [ + Object { + "author": "graju2000", + "createdAt": 2020-09-15T05:34:13.000Z, + "numComments": 67, + "score": 229, + "title": "Made a very complex OS simulator with React", + "url": "https://reddit.com/r/reactjs/comments/it2mls/made_a_very_complex_os_simulator_with_react/", + }, + ], + Array [ + Object { + "author": "Vick_onrails", + "createdAt": 2020-09-08T06:14:18.000Z, + "numComments": 24, + "score": 157, + "title": "Learn React Native with me 😀", + "url": "https://reddit.com/r/reactjs/comments/ioogkh/learn_react_native_with_me/", + }, + Object { + "author": "Devistry", + "createdAt": 2020-04-21T06:39:46.000Z, + "numComments": 15, + "score": 148, + "title": "React: the basics in 20 min | Learn React | Basics for beginners", + "url": "https://reddit.com/r/reactjs/comments/g5a7o5/react_the_basics_in_20_min_learn_react_basics_for/", + }, + ], + Array [ + Object { + "author": "abazi", + "createdAt": 2020-01-21T08:47:14.000Z, + "numComments": 57, + "score": 326, + "title": "Babel 7.8.0 Released: we can now use ECMAScript 2020 new features like.", + "url": "https://reddit.com/r/reactjs/comments/erry3c/babel_780_released_we_can_now_use_ecmascript_2020/", + }, + Object { + "author": "selbekk", + "createdAt": 2019-12-03T08:02:54.000Z, + "numComments": 11, + "score": 181, + "title": "Get started with animations in React - Part of React Christmas 🎅", + "url": "https://reddit.com/r/reactjs/comments/e5dwgm/get_started_with_animations_in_react_part_of/", + }, + Object { + "author": "strvd", + "createdAt": 2020-05-26T07:52:19.000Z, + "numComments": 11, + "score": 137, + "title": "Hacker Noon: Attend JSNation Live 2020, the remote spin-off of a successful JavaScript conference", + "url": "https://reddit.com/r/reactjs/comments/gqsq9x/hacker_noon_attend_jsnation_live_2020_the_remote/", + }, + ], + Array [ + Object { + "author": "maggiathor", + "createdAt": 2020-09-22T08:45:17.000Z, + "numComments": 67, + "score": 983, + "title": "Trying something different for my portfolio, what do you guys think?", + "url": "https://reddit.com/r/reactjs/comments/ixjngh/trying_something_different_for_my_portfolio_what/", + }, + Object { + "author": "real_trizzaye", + "createdAt": 2019-10-08T08:27:24.000Z, + "numComments": 18, + "score": 208, + "title": "Intro to SVG for React Developers", + "url": "https://reddit.com/r/reactjs/comments/dex49q/intro_to_svg_for_react_developers/", + }, + ], + Array [ + Object { + "author": "HighAtNight", + "createdAt": 2020-06-09T09:52:18.000Z, + "numComments": 92, + "score": 560, + "title": "My first MERN stack app finally showable, it is twitter clone with some prefetched data from Twitter api, Feedback and suggestions are welcome.", + "url": "https://reddit.com/r/reactjs/comments/gzk1dh/my_first_mern_stack_app_finally_showable_it_is/", + }, + Object { + "author": "mariuz", + "createdAt": 2020-02-18T10:02:04.000Z, + "numComments": 48, + "score": 377, + "title": "The official Redux template for Create-React-App is now available", + "url": "https://reddit.com/r/reactjs/comments/f5pjvg/the_official_redux_template_for_createreactapp_is/", + }, + Object { + "author": "swyx", + "createdAt": 2019-12-24T10:03:28.000Z, + "numComments": 28, + "score": 205, + "title": "Twizzle: Open Source desktop app for Twitter DM & composing tweets from the menubar. React + Emotion + Redux + Electron app. Sources in comment", + "url": "https://reddit.com/r/reactjs/comments/eezh3k/twizzle_open_source_desktop_app_for_twitter_dm/", + }, + Object { + "author": "bmvantunes", + "createdAt": 2020-05-05T09:15:14.000Z, + "numComments": 0, + "score": 130, + "title": "Next.js Building a Car Trader App: Introduction and FAQ Page", + "url": "https://reddit.com/r/reactjs/comments/gdufm6/nextjs_building_a_car_trader_app_introduction_and/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-04-21T10:07:41.000Z, + "numComments": 72, + "score": 185, + "title": "ZEIT is now Vercel, announces $21m Series A including Accel, CRV, Naval Ravikant, Nat Friedman, and... Jordan Walke", + "url": "https://reddit.com/r/reactjs/comments/g5cjoe/zeit_is_now_vercel_announces_21m_series_a/", + }, + Object { + "author": "revengeuzamaki", + "createdAt": 2020-08-25T10:02:57.000Z, + "numComments": 78, + "score": 149, + "title": "My very first Portfolio site after learning react.js.", + "url": "https://reddit.com/r/reactjs/comments/ig9829/my_very_first_portfolio_site_after_learning/", + }, + ], + Array [ + Object { + "author": "eldadfux", + "createdAt": 2020-03-24T12:21:18.000Z, + "numComments": 38, + "score": 123, + "title": "GitHub - appwrite/appwrite: End-to-end backend as a service for web and mobile 🚀", + "url": "https://reddit.com/r/reactjs/comments/fo47ij/github_appwriteappwrite_endtoend_backend_as_a/", + }, + ], + Array [ + Object { + "author": "pedrobern", + "createdAt": 2020-02-11T13:59:22.000Z, + "numComments": 44, + "score": 651, + "title": "Full page transitions", + "url": "https://reddit.com/r/reactjs/comments/f28oll/full_page_transitions/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-07-07T12:54:51.000Z, + "numComments": 135, + "score": 575, + "title": "Youtube clone (PERN stack)", + "url": "https://reddit.com/r/reactjs/comments/hmu0dt/youtube_clone_pern_stack/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-08-25T12:14:30.000Z, + "numComments": 46, + "score": 422, + "title": "Remember (notetaking application)", + "url": "https://reddit.com/r/reactjs/comments/igaytj/remember_notetaking_application/", + }, + Object { + "author": "rozenmd", + "createdAt": 2020-09-01T12:01:34.000Z, + "numComments": 21, + "score": 297, + "title": "Examples of large production-grade, open-source React apps", + "url": "https://reddit.com/r/reactjs/comments/ikiyka/examples_of_large_productiongrade_opensource/", + }, + Object { + "author": "jxom_", + "createdAt": 2020-08-04T12:39:14.000Z, + "numComments": 58, + "score": 221, + "title": "Introducing Bumbag – A React UI Kit", + "url": "https://reddit.com/r/reactjs/comments/i3ikot/introducing_bumbag_a_react_ui_kit/", + }, + Object { + "author": "rad-react-native", + "createdAt": 2019-12-10T13:05:41.000Z, + "numComments": 55, + "score": 216, + "title": "Got my first app onto the Apple app store last week and just got it accepted onto the google play store today. Happy to answer any questions! It’s a white noise app (with bells and whistles).", + "url": "https://reddit.com/r/reactjs/comments/e8qd5u/got_my_first_app_onto_the_apple_app_store_last/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-08T12:10:03.000Z, + "numComments": 17, + "score": 135, + "title": "Epic thread of **Remote** React Jobs by /u/mstoiber", + "url": "https://reddit.com/r/reactjs/comments/dez2bv/epic_thread_of_remote_react_jobs_by_umstoiber/", + }, + ], + Array [ + Object { + "author": "draftax5", + "createdAt": 2020-02-04T14:51:33.000Z, + "numComments": 196, + "score": 988, + "title": "After almost a year of learning React Native, here is my first full project, Ledger - a workout logging and analytics app", + "url": "https://reddit.com/r/reactjs/comments/eyr4kf/after_almost_a_year_of_learning_react_native_here/", + }, + Object { + "author": "WellyShen", + "createdAt": 2020-05-19T13:41:57.000Z, + "numComments": 50, + "score": 594, + "title": "✨ Introducing react-cool-dimensions: React hook to measure an element's size and handle responsive components. (GitHub included)", + "url": "https://reddit.com/r/reactjs/comments/gmos56/introducing_reactcooldimensions_react_hook_to/", + }, + Object { + "author": "NickDeom", + "createdAt": 2020-08-11T13:56:42.000Z, + "numComments": 44, + "score": 260, + "title": "I made a site that allows you to browse the Spotify catalog and curate a \\"Tindify\\" playlist by swiping song cards", + "url": "https://reddit.com/r/reactjs/comments/i7s9wh/i_made_a_site_that_allows_you_to_browse_the/", + }, + Object { + "author": "obedimp", + "createdAt": 2020-04-28T13:28:00.000Z, + "numComments": 31, + "score": 218, + "title": "A Visual Guide To React Mental Models", + "url": "https://reddit.com/r/reactjs/comments/g9n686/a_visual_guide_to_react_mental_models/", + }, + Object { + "author": "swyx", + "createdAt": 2019-11-12T14:24:51.000Z, + "numComments": 30, + "score": 211, + "title": "Making instagram.com faster: Code size and execution optimizations (Part 4)", + "url": "https://reddit.com/r/reactjs/comments/dvang2/making_instagramcom_faster_code_size_and/", + }, + Object { + "author": "AlexBV1", + "createdAt": 2020-06-23T13:48:28.000Z, + "numComments": 19, + "score": 204, + "title": "VS Code extension with React snippets and other useful libraries", + "url": "https://reddit.com/r/reactjs/comments/heexd5/vs_code_extension_with_react_snippets_and_other/", + }, + Object { + "author": "dance2die", + "createdAt": 2020-03-03T14:58:30.000Z, + "numComments": 92, + "score": 201, + "title": "Stop using isLoading booleans - Kent C. Dodds", + "url": "https://reddit.com/r/reactjs/comments/fcvqnl/stop_using_isloading_booleans_kent_c_dodds/", + }, + Object { + "author": "rwieruch", + "createdAt": 2019-10-08T13:58:42.000Z, + "numComments": 63, + "score": 191, + "title": "Why Redux makes you a better JavaScript Developer", + "url": "https://reddit.com/r/reactjs/comments/df0bvv/why_redux_makes_you_a_better_javascript_developer/", + }, + Object { + "author": "swyx", + "createdAt": 2020-01-14T14:50:35.000Z, + "numComments": 25, + "score": 191, + "title": "Storybook 5.3 release: stories & docs in MDX, first-class React support, Declarative config, and Design tool integrations", + "url": "https://reddit.com/r/reactjs/comments/eom889/storybook_53_release_stories_docs_in_mdx/", + }, + ], + Array [ + Object { + "author": "pi22a3", + "createdAt": 2020-07-28T14:21:47.000Z, + "numComments": 20, + "score": 530, + "title": "Rubber Mesh Swipe Transition ( three-js & react-spring)", + "url": "https://reddit.com/r/reactjs/comments/hzfig9/rubber_mesh_swipe_transition_threejs_reactspring/", + }, + Object { + "author": "tannerlinsley", + "createdAt": 2019-11-05T15:13:12.000Z, + "numComments": 50, + "score": 222, + "title": "React Query ⚛️ Hooks for fetching, caching and updating asynchronous data in React", + "url": "https://reddit.com/r/reactjs/comments/ds0hp4/react_query_hooks_for_fetching_caching_and/", + }, + Object { + "author": "o1314", + "createdAt": 2020-03-10T15:58:52.000Z, + "numComments": 14, + "score": 205, + "title": "A React component to compare two images", + "url": "https://reddit.com/r/reactjs/comments/fgg0p7/a_react_component_to_compare_two_images/", + }, + ], + Array [ + Object { + "author": "intrepidev", + "createdAt": 2019-10-15T15:51:16.000Z, + "numComments": 61, + "score": 636, + "title": "I made an interactive solver for the traveling salesman problem to visualize different algorithms with hooks and web workers. Each step of progress is drawn to the map in real-time and can be controlled all in the browser at tspvis.com.", + "url": "https://reddit.com/r/reactjs/comments/di9t67/i_made_an_interactive_solver_for_the_traveling/", + }, + Object { + "author": "wcandillon", + "createdAt": 2020-03-31T15:13:33.000Z, + "numComments": 13, + "score": 239, + "title": "Instagram Pinch-to-Zoom - “Can it be done in React Native?”", + "url": "https://reddit.com/r/reactjs/comments/fsen15/instagram_pinchtozoom_can_it_be_done_in_react/", + }, + Object { + "author": "mindingmyownbusyness", + "createdAt": 2020-01-28T16:18:21.000Z, + "numComments": 11, + "score": 131, + "title": "Repos for Beginners to Learn From", + "url": "https://reddit.com/r/reactjs/comments/ev7jnb/repos_for_beginners_to_learn_from/", + }, + Object { + "author": "gaearon", + "createdAt": 2020-09-22T15:14:13.000Z, + "numComments": 15, + "score": 121, + "title": "Introducing the New JSX Transform", + "url": "https://reddit.com/r/reactjs/comments/ixpbga/introducing_the_new_jsx_transform/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-07-14T16:15:57.000Z, + "numComments": 25, + "score": 319, + "title": "This sub has grown 100% since 1 year ago", + "url": "https://reddit.com/r/reactjs/comments/hr4fuu/this_sub_has_grown_100_since_1_year_ago/", + }, + Object { + "author": "JudoboyWalex", + "createdAt": 2020-09-29T16:05:55.000Z, + "numComments": 260, + "score": 258, + "title": "What's the difference between Kent Dodds' $359 Epic React course and $10 Udemy react course by popular instructors?", + "url": "https://reddit.com/r/reactjs/comments/j2268y/whats_the_difference_between_kent_dodds_359_epic/", + }, + Object { + "author": "hernansartorio", + "createdAt": 2020-01-21T17:42:40.000Z, + "numComments": 58, + "score": 182, + "title": "React Nice Dates: A responsive, touch-friendly, and modular date picker library for React.", + "url": "https://reddit.com/r/reactjs/comments/ery4pb/react_nice_dates_a_responsive_touchfriendly_and/", + }, + ], + Array [ + Object { + "author": "persimmmons", + "createdAt": 2020-09-08T17:34:11.000Z, + "numComments": 47, + "score": 664, + "title": "A progressive web app that syncs videos, so you can have virtual watch parties with friends", + "url": "https://reddit.com/r/reactjs/comments/ioy1yi/a_progressive_web_app_that_syncs_videos_so_you/", + }, + Object { + "author": "kezro", + "createdAt": 2020-08-18T17:00:48.000Z, + "numComments": 38, + "score": 351, + "title": "Microsoft will bid farewell to Internet Explorer and legacy Edge in 2021", + "url": "https://reddit.com/r/reactjs/comments/ic4x29/microsoft_will_bid_farewell_to_internet_explorer/", + }, + Object { + "author": "jameskingio", + "createdAt": 2020-03-17T18:15:42.000Z, + "numComments": 30, + "score": 246, + "title": "How React Reignited My Love for Web Development", + "url": "https://reddit.com/r/reactjs/comments/fka30l/how_react_reignited_my_love_for_web_development/", + }, + Object { + "author": "stolinski", + "createdAt": 2020-04-21T17:48:09.000Z, + "numComments": 15, + "score": 160, + "title": "6 Awesome Chrome Extension for Github", + "url": "https://reddit.com/r/reactjs/comments/g5jwri/6_awesome_chrome_extension_for_github/", + }, + ], + Array [ + Object { + "author": "owaiswiz", + "createdAt": 2020-05-12T18:29:24.000Z, + "numComments": 67, + "score": 803, + "title": "I created a set of Free React UI Templates & Components (52 UI Components, 7 Landing Pages, 8 Inner Pages, Fully Responsive) for creating Beautiful Landing Pages easily", + "url": "https://reddit.com/r/reactjs/comments/gih6xv/i_created_a_set_of_free_react_ui_templates/", + }, + Object { + "author": "dev_forest", + "createdAt": 2020-05-26T18:17:16.000Z, + "numComments": 32, + "score": 396, + "title": "Figma style real-time cursors with Firebase", + "url": "https://reddit.com/r/reactjs/comments/gr2dry/figma_style_realtime_cursors_with_firebase/", + }, + Object { + "author": "Xiy", + "createdAt": 2020-04-07T18:57:27.000Z, + "numComments": 29, + "score": 367, + "title": "Pokemon Application | React, Apollo & GraphQL Tutorial For Beginners", + "url": "https://reddit.com/r/reactjs/comments/fwqb1c/pokemon_application_react_apollo_graphql_tutorial/", + }, + Object { + "author": "tannerlinsley", + "createdAt": 2020-03-10T19:54:47.000Z, + "numComments": 27, + "score": 303, + "title": "🎉 Announcing React Table v7! 🎉", + "url": "https://reddit.com/r/reactjs/comments/fgjw7u/announcing_react_table_v7/", + }, + Object { + "author": "abodmicheal", + "createdAt": 2020-09-15T18:37:46.000Z, + "numComments": 55, + "score": 254, + "title": "NETFLIX clone - React and Firebase", + "url": "https://reddit.com/r/reactjs/comments/iteqzk/netflix_clone_react_and_firebase/", + }, + Object { + "author": "qdozaq", + "createdAt": 2020-04-14T18:37:26.000Z, + "numComments": 34, + "score": 203, + "title": "I created a game using react-three-fiber", + "url": "https://reddit.com/r/reactjs/comments/g1b4rd/i_created_a_game_using_reactthreefiber/", + }, + Object { + "author": "bugzpodder", + "createdAt": 2019-10-29T19:43:36.000Z, + "numComments": 33, + "score": 167, + "title": "Formik 2.0 with hooks", + "url": "https://reddit.com/r/reactjs/comments/dov156/formik_20_with_hooks/", + }, + Object { + "author": "slikts", + "createdAt": 2020-02-25T19:37:26.000Z, + "numComments": 40, + "score": 163, + "title": "Up to date answer about when to use React context or Redux (Redux Toolkit)", + "url": "https://reddit.com/r/reactjs/comments/f9fro5/up_to_date_answer_about_when_to_use_react_context/", + }, + ], + Array [ + Object { + "author": "dance2die", + "createdAt": 2019-11-19T20:46:56.000Z, + "numComments": 75, + "score": 324, + "title": "Facebook and Microsoft Partnering on Remote Development", + "url": "https://reddit.com/r/reactjs/comments/dyqhyv/facebook_and_microsoft_partnering_on_remote/", + }, + Object { + "author": "songomen", + "createdAt": 2020-01-07T20:35:13.000Z, + "numComments": 44, + "score": 143, + "title": "I made stock trading app with react, firebase and IEX api.", + "url": "https://reddit.com/r/reactjs/comments/elhak3/i_made_stock_trading_app_with_react_firebase_and/", + }, + ], + Array [], + Array [ + Object { + "author": "aL_Quarter", + "createdAt": 2020-06-23T21:45:46.000Z, + "numComments": 89, + "score": 480, + "title": "My second full-stack project - A Twitter Clone", + "url": "https://reddit.com/r/reactjs/comments/henrwi/my_second_fullstack_project_a_twitter_clone/", + }, + Object { + "author": "MoSattler", + "createdAt": 2020-04-28T21:40:14.000Z, + "numComments": 112, + "score": 226, + "title": "I want to teach you React!", + "url": "https://reddit.com/r/reactjs/comments/g9w9v5/i_want_to_teach_you_react/", + }, + ], ], Array [ - 1, - 2, - 0, - 2, - 1, - 2, - 1, - 1, - 0, - 2, - 4, - 2, - 7, - 3, - 4, - 5, - 5, - 3, - 2, - 5, - 2, - 3, - 1, - 4, + Array [ + Object { + "author": "itradedaoptions", + "createdAt": 2020-06-09T22:07:59.000Z, + "numComments": 59, + "score": 215, + "title": "After 3 weeks of building with react & typescript I'm officially in love. We managed to build out the web app for StockAlarm and here's how it turned out...", + "url": "https://reddit.com/r/reactjs/comments/gzxh3x/after_3_weeks_of_building_with_react_typescript/", + }, + ], + Array [ + Object { + "author": "Hanswolebro", + "createdAt": 2020-09-01T23:24:48.000Z, + "numComments": 116, + "score": 228, + "title": "Self taught, just finished my 2nd React App. A League of Legends champion page. Feedback appreciated", + "url": "https://reddit.com/r/reactjs/comments/ikvfw6/self_taught_just_finished_my_2nd_react_app_a/", + }, + Object { + "author": "moscowramada", + "createdAt": 2020-05-05T23:12:19.000Z, + "numComments": 48, + "score": 121, + "title": "Is anyone else frustrated by the state of React documentation, before and after the introduction of hooks?", + "url": "https://reddit.com/r/reactjs/comments/ge8fkg/is_anyone_else_frustrated_by_the_state_of_react/", + }, + ], + Array [], + Array [ + Object { + "author": "skramzy", + "createdAt": 2020-06-03T01:03:03.000Z, + "numComments": 139, + "score": 400, + "title": "I've been almost exlusively developing in C#/.NET for about two years, but due to possible layoffs amid COVID started working React tickets at my job about a month ago - holy shit I love it.", + "url": "https://reddit.com/r/reactjs/comments/gvk0vk/ive_been_almost_exlusively_developing_in_cnet_for/", + }, + Object { + "author": "swyx", + "createdAt": 2019-12-18T02:01:42.000Z, + "numComments": 15, + "score": 170, + "title": "How we accidentally launched a popular Gatsby plugin", + "url": "https://reddit.com/r/reactjs/comments/ec5y7m/how_we_accidentally_launched_a_popular_gatsby/", + }, + ], + Array [ + Object { + "author": "roamingandy", + "createdAt": 2020-01-08T03:11:50.000Z, + "numComments": 21, + "score": 119, + "title": "A volunteer community of React Devs have been building an app/site to change global homelessness by building stronger social safety nets in communities. It's basic but has begun helping people. Could you improve it?", + "url": "https://reddit.com/r/reactjs/comments/elmoxk/a_volunteer_community_of_react_devs_have_been/", + }, + ], + Array [ + Object { + "author": "namywamy", + "createdAt": 2020-08-26T03:47:43.000Z, + "numComments": 61, + "score": 430, + "title": "Are there any large open source repos out there that demonstrate well written React code at the production/business level?", + "url": "https://reddit.com/r/reactjs/comments/igrpdr/are_there_any_large_open_source_repos_out_there/", + }, + Object { + "author": "didinj", + "createdAt": 2020-08-05T03:05:04.000Z, + "numComments": 5, + "score": 148, + "title": "React JS Tutorial: Building Firebase Chat App (React Hooks)", + "url": "https://reddit.com/r/reactjs/comments/i3xln3/react_js_tutorial_building_firebase_chat_app/", + }, + ], + Array [ + Object { + "author": "AmruthPillai", + "createdAt": 2020-04-22T04:55:27.000Z, + "numComments": 197, + "score": 504, + "title": "I rebuilt my personal portfolio using GatsbyJS, and I'm loving it!", + "url": "https://reddit.com/r/reactjs/comments/g5uyrt/i_rebuilt_my_personal_portfolio_using_gatsbyjs/", + }, + ], + Array [ + Object { + "author": "theanubhav", + "createdAt": 2020-01-01T06:20:37.000Z, + "numComments": 71, + "score": 432, + "title": "My Decade in Review", + "url": "https://reddit.com/r/reactjs/comments/eif22l/my_decade_in_review/", + }, + ], + Array [], + Array [ + Object { + "author": "theshubhagrwl", + "createdAt": 2020-07-22T07:59:36.000Z, + "numComments": 110, + "score": 507, + "title": "Completed my Portfolio Website", + "url": "https://reddit.com/r/reactjs/comments/hvppm3/completed_my_portfolio_website/", + }, + Object { + "author": "Alextzta", + "createdAt": 2020-01-29T08:56:30.000Z, + "numComments": 80, + "score": 168, + "title": "Personal website I built", + "url": "https://reddit.com/r/reactjs/comments/evkfz5/personal_website_i_built/", + }, + ], + Array [ + Object { + "author": "Xiy", + "createdAt": 2020-09-16T08:51:24.000Z, + "numComments": 30, + "score": 594, + "title": "Building a Netflix Clone - Styled Components - Compound Components - Firebase (Firestore & Authentication)", + "url": "https://reddit.com/r/reactjs/comments/itrvon/building_a_netflix_clone_styled_components/", + }, + Object { + "author": "bluebill1049", + "createdAt": 2020-07-01T08:05:11.000Z, + "numComments": 114, + "score": 437, + "title": "React Hook Form V6 is released.", + "url": "https://reddit.com/r/reactjs/comments/hj62o0/react_hook_form_v6_is_released/", + }, + Object { + "author": "pareek-narendra", + "createdAt": 2020-09-23T08:52:28.000Z, + "numComments": 21, + "score": 154, + "title": "Understand React Rendering with examples", + "url": "https://reddit.com/r/reactjs/comments/iy6jdz/understand_react_rendering_with_examples/", + }, + Object { + "author": "rwieruch", + "createdAt": 2020-04-08T08:58:25.000Z, + "numComments": 37, + "score": 121, + "title": "React Folder Structure in 5 Steps", + "url": "https://reddit.com/r/reactjs/comments/fx3206/react_folder_structure_in_5_steps/", + }, + ], + Array [ + Object { + "author": "rozenmd", + "createdAt": 2020-08-19T09:38:39.000Z, + "numComments": 33, + "score": 303, + "title": "airbnb/ts-migrate - a tool for helping migrate code to TypeScript", + "url": "https://reddit.com/r/reactjs/comments/ickjos/airbnbtsmigrate_a_tool_for_helping_migrate_code/", + }, + Object { + "author": "nikke1234", + "createdAt": 2020-05-06T09:01:40.000Z, + "numComments": 14, + "score": 246, + "title": "[WIP] two-way WYSIWYG editing", + "url": "https://reddit.com/r/reactjs/comments/gegg2x/wip_twoway_wysiwyg_editing/", + }, + ], + Array [ + Object { + "author": "solkimicreb", + "createdAt": 2020-04-01T10:12:49.000Z, + "numComments": 64, + "score": 275, + "title": "My library (React Easy State) is now supported by my workplace (Risingstack). I am excited about the future (:", + "url": "https://reddit.com/r/reactjs/comments/fsx2vv/my_library_react_easy_state_is_now_supported_by/", + }, + Object { + "author": "catapop", + "createdAt": 2020-03-18T11:05:16.000Z, + "numComments": 81, + "score": 218, + "title": "A Sneak Peek at React Router v6", + "url": "https://reddit.com/r/reactjs/comments/fknsma/a_sneak_peek_at_react_router_v6/", + }, + Object { + "author": "gauravjawla", + "createdAt": 2019-10-30T11:01:46.000Z, + "numComments": 92, + "score": 215, + "title": "Just finished making this dashboard for trading. looking forward for your precious comments.", + "url": "https://reddit.com/r/reactjs/comments/dp55sh/just_finished_making_this_dashboard_for_trading/", + }, + Object { + "author": "SnirD", + "createdAt": 2020-04-15T10:52:35.000Z, + "numComments": 23, + "score": 138, + "title": "React Router 6 Tutorial", + "url": "https://reddit.com/r/reactjs/comments/g1ppx2/react_router_6_tutorial/", + }, + Object { + "author": "misa012", + "createdAt": 2020-03-04T11:05:36.000Z, + "numComments": 20, + "score": 139, + "title": "Mini social network that I made as my first MERN stack project.", + "url": "https://reddit.com/r/reactjs/comments/fdbgcl/mini_social_network_that_i_made_as_my_first_mern/", + }, + Object { + "author": "rozenmd", + "createdAt": 2020-02-26T11:45:00.000Z, + "numComments": 47, + "score": 138, + "title": "How I used React-Loadable to more than half my React app's load time", + "url": "https://reddit.com/r/reactjs/comments/f9s090/how_i_used_reactloadable_to_more_than_half_my/", + }, + Object { + "author": "troutrucker", + "createdAt": 2020-03-25T11:47:18.000Z, + "numComments": 50, + "score": 128, + "title": "ELI5: When would I use useReducer/useCallback/useMemo over state/effect/ref?", + "url": "https://reddit.com/r/reactjs/comments/fooxw9/eli5_when_would_i_use/", + }, + ], + Array [ + Object { + "author": "jkettmann", + "createdAt": 2020-06-24T11:38:55.000Z, + "numComments": 43, + "score": 339, + "title": "An in-depth beginner's guide to testing React applications", + "url": "https://reddit.com/r/reactjs/comments/hezhuj/an_indepth_beginners_guide_to_testing_react/", + }, + Object { + "author": "diemax", + "createdAt": 2020-09-09T11:45:32.000Z, + "numComments": 97, + "score": 300, + "title": "React + Typescript ❤️: The good parts ⚡️", + "url": "https://reddit.com/r/reactjs/comments/ipeb9g/react_typescript_the_good_parts/", + }, + Object { + "author": "Xiy", + "createdAt": 2019-12-11T12:23:00.000Z, + "numComments": 9, + "score": 237, + "title": "Learn GraphQL, Apollo Server 2, and Black-box Testing (P2/3 of a newsreader built using React)", + "url": "https://reddit.com/r/reactjs/comments/e96fm5/learn_graphql_apollo_server_2_and_blackbox/", + }, + ], + Array [ + Object { + "author": "joyancefa", + "createdAt": 2020-09-30T12:36:43.000Z, + "numComments": 62, + "score": 420, + "title": "Here is how to access Kent Dodds' $359 Epic React course repositories", + "url": "https://reddit.com/r/reactjs/comments/j2la5p/here_is_how_to_access_kent_dodds_359_epic_react/", + }, + Object { + "author": "cmdq", + "createdAt": 2020-04-01T12:53:00.000Z, + "numComments": 60, + "score": 269, + "title": "I made a chrome extension with React which replaces the github file list with with an expandable tree view with file preview! It's called Tako, check it out!", + "url": "https://reddit.com/r/reactjs/comments/fsz7oy/i_made_a_chrome_extension_with_react_which/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-13T12:15:18.000Z, + "numComments": 21, + "score": 166, + "title": "React Router v6 migrated to TypeScript", + "url": "https://reddit.com/r/reactjs/comments/gixv6s/react_router_v6_migrated_to_typescript/", + }, + Object { + "author": "lluiscamino", + "createdAt": 2020-02-19T13:22:05.000Z, + "numComments": 38, + "score": 165, + "title": "fake-tweet • Tweet React component", + "url": "https://reddit.com/r/reactjs/comments/f6ahdj/faketweet_tweet_react_component/", + }, + ], + Array [ + Object { + "author": "oczekkk", + "createdAt": 2020-08-05T13:06:16.000Z, + "numComments": 11, + "score": 185, + "title": "React + GraphQL boilerplate that scales easily", + "url": "https://reddit.com/r/reactjs/comments/i44zx8/react_graphql_boilerplate_that_scales_easily/", + }, + Object { + "author": "FezVrasta", + "createdAt": 2020-01-22T14:56:39.000Z, + "numComments": 19, + "score": 147, + "title": "Popper 2 released! The popular positioning engine for tooltips and popovers, used by Material UI, Bootstrap, and more", + "url": "https://reddit.com/r/reactjs/comments/esd3fe/popper_2_released_the_popular_positioning_engine/", + }, + Object { + "author": "frankdilo", + "createdAt": 2020-07-08T13:25:38.000Z, + "numComments": 7, + "score": 133, + "title": "How I recreated the Hey \\"Feed\\" with AWS Lambda, SES and React", + "url": "https://reddit.com/r/reactjs/comments/hnh0mh/how_i_recreated_the_hey_feed_with_aws_lambda_ses/", + }, + Object { + "author": "magenta_placenta", + "createdAt": 2019-12-18T14:54:14.000Z, + "numComments": 15, + "score": 132, + "title": "svg-to-react - a utility to convert raw SVG files into accessible and extendable React Components", + "url": "https://reddit.com/r/reactjs/comments/ecdmuz/svgtoreact_a_utility_to_convert_raw_svg_files/", + }, + Object { + "author": "acemarke", + "createdAt": 2019-10-23T13:50:36.000Z, + "numComments": 39, + "score": 122, + "title": "Redux Starter Kit 1.0: the official, opinionated, batteries-included toolset for Redux", + "url": "https://reddit.com/r/reactjs/comments/dlzlln/redux_starter_kit_10_the_official_opinionated/", + }, + ], + Array [ + Object { + "author": "winkerVSbecks", + "createdAt": 2020-08-12T14:56:58.000Z, + "numComments": 24, + "score": 336, + "title": "Storybook 6.0 is here! New workflows and 100s of improvements", + "url": "https://reddit.com/r/reactjs/comments/i8f79v/storybook_60_is_here_new_workflows_and_100s_of/", + }, + Object { + "author": "Baryn", + "createdAt": 2019-11-13T15:11:16.000Z, + "numComments": 91, + "score": 297, + "title": "Redux Starter Kit is now Redux Toolkit; the official, improved way to work with Redux", + "url": "https://reddit.com/r/reactjs/comments/dvt3bz/redux_starter_kit_is_now_redux_toolkit_the/", + }, + Object { + "author": "swyx", + "createdAt": 2020-01-15T15:53:41.000Z, + "numComments": 12, + "score": 222, + "title": "React DevTools now shows the names of Custom Hooks - Shu Ding on Twitter", + "url": "https://reddit.com/r/reactjs/comments/ep40iq/react_devtools_now_shows_the_names_of_custom/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-16T14:35:06.000Z, + "numComments": 33, + "score": 206, + "title": "2 possible new Hooks to be announced at React Conf: useDeferredValue and useTransition", + "url": "https://reddit.com/r/reactjs/comments/diq5kg/2_possible_new_hooks_to_be_announced_at_react/", + }, + Object { + "author": "yesimahuman", + "createdAt": 2020-03-11T15:18:57.000Z, + "numComments": 13, + "score": 131, + "title": "New Ionic React live code demo and starter apps", + "url": "https://reddit.com/r/reactjs/comments/fgyr52/new_ionic_react_live_code_demo_and_starter_apps/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-05-27T15:50:55.000Z, + "numComments": 105, + "score": 410, + "title": "Gatsby, Website-Building Startup Backed By Index Ventures, Raises $28 Million", + "url": "https://reddit.com/r/reactjs/comments/grm6wt/gatsby_websitebuilding_startup_backed_by_index/", + }, + Object { + "author": "acemarke", + "createdAt": 2019-11-20T16:23:05.000Z, + "numComments": 68, + "score": 371, + "title": "New Redux docs \\"Style Guide\\" page: recommended patterns and best practices for using Redux", + "url": "https://reddit.com/r/reactjs/comments/dz4bct/new_redux_docs_style_guide_page_recommended/", + }, + Object { + "author": "jesusscript", + "createdAt": 2019-12-25T16:25:02.000Z, + "numComments": 37, + "score": 167, + "title": "Is there any good example of a React application doing unit, integration and E2E testing perfectly?", + "url": "https://reddit.com/r/reactjs/comments/efid4z/is_there_any_good_example_of_a_react_application/", + }, + ], + Array [ + Object { + "author": "Drazxie", + "createdAt": 2020-06-17T16:35:25.000Z, + "numComments": 38, + "score": 333, + "title": "I built an open source windows based tool using ReactJS to monitor and analyze your system's power and battery usage over time showcasing various insights like battery capacity, estimated life, cycle, recent usages, etc with various options to export all of the data in structured format (JSON, PDF)", + "url": "https://reddit.com/r/reactjs/comments/hauq4l/i_built_an_open_source_windows_based_tool_using/", + }, + Object { + "author": "swyx", + "createdAt": 2019-12-18T17:59:50.000Z, + "numComments": 17, + "score": 144, + "title": "Meet the React Team (New page on Docs)", + "url": "https://reddit.com/r/reactjs/comments/ecg2iv/meet_the_react_team_new_page_on_docs/", + }, + ], + Array [ + Object { + "author": "juliacodes", + "createdAt": 2020-01-29T18:29:18.000Z, + "numComments": 177, + "score": 425, + "title": "My current portfolio as a Jr. Front End Dev", + "url": "https://reddit.com/r/reactjs/comments/evqusn/my_current_portfolio_as_a_jr_front_end_dev/", + }, + Object { + "author": "swyx", + "createdAt": 2020-09-23T17:19:09.000Z, + "numComments": 64, + "score": 375, + "title": "\\"import React from 'react'\\" will go away in distant future", + "url": "https://reddit.com/r/reactjs/comments/iyehol/import_react_from_react_will_go_away_in_distant/", + }, + Object { + "author": "MatanBobi", + "createdAt": 2019-10-23T17:12:19.000Z, + "numComments": 35, + "score": 192, + "title": "Wait, You're not using <StrictMode>?!", + "url": "https://reddit.com/r/reactjs/comments/dm2d4y/wait_youre_not_using_strictmode/", + }, + Object { + "author": "mcjord", + "createdAt": 2020-01-22T18:09:06.000Z, + "numComments": 25, + "score": 152, + "title": "Help us create a community-curated list of React Libraries!", + "url": "https://reddit.com/r/reactjs/comments/esfraa/help_us_create_a_communitycurated_list_of_react/", + }, + Object { + "author": "swizec", + "createdAt": 2019-11-06T18:52:12.000Z, + "numComments": 15, + "score": 149, + "title": "I wrote this to help me wrap my head around React Suspense for data fetching. Hope it helps you too", + "url": "https://reddit.com/r/reactjs/comments/dskqpw/i_wrote_this_to_help_me_wrap_my_head_around_react/", + }, + ], + Array [ + Object { + "author": "Elancheziyan", + "createdAt": 2020-06-24T18:42:21.000Z, + "numComments": 115, + "score": 353, + "title": "My First Project guys. Check it out and give me some feedbacks and reviews on it. It'll really help me grow.. Thank you : ) website link : https://electrofocus-website.firebaseapp.com/", + "url": "https://reddit.com/r/reactjs/comments/hf6pgw/my_first_project_guys_check_it_out_and_give_me/", + }, + Object { + "author": "michaelpb", + "createdAt": 2020-09-02T18:57:07.000Z, + "numComments": 40, + "score": 265, + "title": "Hey all -- I converted ReactJS.org documentation to use hooks! Useful? Any feedback?", + "url": "https://reddit.com/r/reactjs/comments/ild03a/hey_all_i_converted_reactjsorg_documentation_to/", + }, + ], + Array [ + Object { + "author": "devacct0", + "createdAt": 2020-07-15T19:23:36.000Z, + "numComments": 55, + "score": 336, + "title": "New from Adobe: Introducing React Spectrum", + "url": "https://reddit.com/r/reactjs/comments/hru4ov/new_from_adobe_introducing_react_spectrum/", + }, + Object { + "author": "swyx", + "createdAt": 2020-02-26T20:07:16.000Z, + "numComments": 84, + "score": 276, + "title": "React Query v1.0.0 released", + "url": "https://reddit.com/r/reactjs/comments/f9zani/react_query_v100_released/", + }, + Object { + "author": "magenta_placenta", + "createdAt": 2020-03-04T20:00:35.000Z, + "numComments": 12, + "score": 208, + "title": "Beautiful React Hooks - a collection of beautiful (and hopefully useful) React hooks to speed-up your components and hooks development", + "url": "https://reddit.com/r/reactjs/comments/fdiqm7/beautiful_react_hooks_a_collection_of_beautiful/", + }, + ], + Array [ + Object { + "author": "desperate-1", + "createdAt": 2020-08-26T20:29:58.000Z, + "numComments": 40, + "score": 188, + "title": "How do I write meaningful tests using React Testing Library?", + "url": "https://reddit.com/r/reactjs/comments/ih6rl8/how_do_i_write_meaningful_tests_using_react/", + }, + ], + Array [ + Object { + "author": "ImBigChris", + "createdAt": 2020-01-08T22:23:11.000Z, + "numComments": 175, + "score": 1061, + "title": "I built a Portfolio Gatsby theme", + "url": "https://reddit.com/r/reactjs/comments/em001y/i_built_a_portfolio_gatsby_theme/", + }, + Object { + "author": "tannerlinsley", + "createdAt": 2020-07-29T21:04:02.000Z, + "numComments": 22, + "score": 216, + "title": "React Query migrates to TypeScript", + "url": "https://reddit.com/r/reactjs/comments/i08pme/react_query_migrates_to_typescript/", + }, + Object { + "author": "magenta_placenta", + "createdAt": 2020-04-15T21:15:26.000Z, + "numComments": 23, + "score": 181, + "title": "React Router v6 Preview", + "url": "https://reddit.com/r/reactjs/comments/g20xlv/react_router_v6_preview/", + }, + Object { + "author": "yoavniran", + "createdAt": 2020-05-06T21:24:24.000Z, + "numComments": 20, + "score": 132, + "title": "react-uploady - a new way to upload files in React", + "url": "https://reddit.com/r/reactjs/comments/gesxsh/reactuploady_a_new_way_to_upload_files_in_react/", + }, + ], ], Array [ - 3, - 2, - 1, - 1, - 4, - 0, - 0, - 3, - 0, - 3, - 2, - 5, - 3, - 1, - 5, - 2, - 12, - 5, - 8, - 6, - 5, - 1, - 3, - 1, + Array [ + Object { + "author": "jb2386", + "createdAt": 2020-07-22T22:27:41.000Z, + "numComments": 53, + "score": 734, + "title": "Just found this site \\"useHooks.com\\" - super helpful collection of react hooks!", + "url": "https://reddit.com/r/reactjs/comments/hw3mzw/just_found_this_site_usehookscom_super_helpful/", + }, + Object { + "author": "timne", + "createdAt": 2020-01-15T23:52:25.000Z, + "numComments": 33, + "score": 205, + "title": "Next.js 9.2 released: Built-In CSS Imports and CSS Modules, Catch-All Dynamic Routes, Up to 70% Reduced Largest JavaScript Bundle, and Up to 87% Less JavaScript Loaded after Multiple Navigations", + "url": "https://reddit.com/r/reactjs/comments/epascq/nextjs_92_released_builtin_css_imports_and_css/", + }, + Object { + "author": "tajo21", + "createdAt": 2019-10-30T23:11:51.000Z, + "numComments": 13, + "score": 123, + "title": "What goes into building a drag and drop component in 2019?", + "url": "https://reddit.com/r/reactjs/comments/dpenbn/what_goes_into_building_a_drag_and_drop_component/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-09-16T23:36:42.000Z, + "numComments": 49, + "score": 422, + "title": "Create-React-App v4 coming soon with TypeScript 4 support, Fast Refresh and ESLint upgrades and experimental support for React 17's new JSX transform.", + "url": "https://reddit.com/r/reactjs/comments/iu7lnx/createreactapp_v4_coming_soon_with_typescript_4/", + }, + Object { + "author": "tazemebro", + "createdAt": 2019-12-05T00:41:41.000Z, + "numComments": 53, + "score": 390, + "title": "create-react-app 3.3.0 released! Support for optional chaining and nullish coalescing operators", + "url": "https://reddit.com/r/reactjs/comments/e690dw/createreactapp_330_released_support_for_optional/", + }, + ], + Array [ + Object { + "author": "aeksco", + "createdAt": 2020-01-02T01:46:13.000Z, + "numComments": 30, + "score": 323, + "title": "Chrome Extension starter kit built with React, TypeScript, SCSS, Storybook, EsLint, Prettier, Webpack, & Bootstrap", + "url": "https://reddit.com/r/reactjs/comments/eircct/chrome_extension_starter_kit_built_with_react/", + }, + ], + Array [ + Object { + "author": "abdulmdiaz", + "createdAt": 2020-05-21T01:02:58.000Z, + "numComments": 56, + "score": 504, + "title": "Built a Dribbble Clone for Developers, MVP", + "url": "https://reddit.com/r/reactjs/comments/gnn5j1/built_a_dribbble_clone_for_developers_mvp/", + }, + ], + Array [ + Object { + "author": "gabriellvasile", + "createdAt": 2020-07-09T02:45:01.000Z, + "numComments": 26, + "score": 329, + "title": "Javascript Testing Masterclass (React, Jest, React Testing Library, Cypress)", + "url": "https://reddit.com/r/reactjs/comments/hnv62b/javascript_testing_masterclass_react_jest_react/", + }, + Object { + "author": "bikeshaving", + "createdAt": 2019-11-28T03:18:46.000Z, + "numComments": 82, + "score": 294, + "title": "A PR is merged into slate.js (React-based rich text editor), closing so many issues that it temporarily broke github", + "url": "https://reddit.com/r/reactjs/comments/e2rw5o/a_pr_is_merged_into_slatejs_reactbased_rich_text/", + }, + Object { + "author": "tazemebro", + "createdAt": 2019-10-03T02:20:57.000Z, + "numComments": 52, + "score": 174, + "title": "After wrestling with managing network request state, I decided to create use-axios-client: a custom hooks library to abstract away your network request state so you can focus on building your UI.", + "url": "https://reddit.com/r/reactjs/comments/dckm1j/after_wrestling_with_managing_network_request/", + }, + Object { + "author": "swyx", + "createdAt": 2020-02-06T03:29:01.000Z, + "numComments": 49, + "score": 131, + "title": "Iowa Caucus React Native App Bundle", + "url": "https://reddit.com/r/reactjs/comments/ezm1r9/iowa_caucus_react_native_app_bundle/", + }, + ], + Array [], + Array [], + Array [ + Object { + "author": "swyx", + "createdAt": 2019-10-10T05:04:34.000Z, + "numComments": 48, + "score": 196, + "title": "Introducing Create Next App", + "url": "https://reddit.com/r/reactjs/comments/dft6u7/introducing_create_next_app/", + }, + Object { + "author": "alexreardon", + "createdAt": 2020-04-09T05:17:36.000Z, + "numComments": 7, + "score": 148, + "title": "Introducing storybook-addon-performance 🚀", + "url": "https://reddit.com/r/reactjs/comments/fxmfzv/introducing_storybookaddonperformance/", + }, + Object { + "author": "reforitor", + "createdAt": 2020-07-23T05:03:09.000Z, + "numComments": 59, + "score": 124, + "title": "Me and my friend built a hosting platform where you can deploy frontend apps for free, with just a few clicks. I would love to hear some feedback from you!", + "url": "https://reddit.com/r/reactjs/comments/hw9oy7/me_and_my_friend_built_a_hosting_platform_where/", + }, + ], + Array [], + Array [ + Object { + "author": "AmruthPillai", + "createdAt": 2020-03-26T08:56:45.000Z, + "numComments": 106, + "score": 337, + "title": "I made a free and open-source resume builder using ReactJS!", + "url": "https://reddit.com/r/reactjs/comments/fp88n0/i_made_a_free_and_opensource_resume_builder_using/", + }, + Object { + "author": "rwieruch", + "createdAt": 2020-04-30T07:51:41.000Z, + "numComments": 62, + "score": 178, + "title": "How to use React Ref", + "url": "https://reddit.com/r/reactjs/comments/garf15/how_to_use_react_ref/", + }, + Object { + "author": "Parul_dev", + "createdAt": 2020-08-13T07:05:43.000Z, + "numComments": 38, + "score": 155, + "title": "A dashboard in React and CSS Grid", + "url": "https://reddit.com/r/reactjs/comments/i8v9mg/a_dashboard_in_react_and_css_grid/", + }, + ], + Array [ + Object { + "author": "AlterClass_io", + "createdAt": 2020-05-07T08:45:23.000Z, + "numComments": 33, + "score": 478, + "title": "REACT TRELLO CLONE --> https://react-trello.app/", + "url": "https://reddit.com/r/reactjs/comments/gf2veh/react_trello_clone_httpsreacttrelloapp/", + }, + Object { + "author": "vampy43", + "createdAt": 2019-12-19T09:08:28.000Z, + "numComments": 53, + "score": 175, + "title": "I just rebuilt my website. I was feeling a little nostalgic I guess!", + "url": "https://reddit.com/r/reactjs/comments/ecqrmk/i_just_rebuilt_my_website_i_was_feeling_a_little/", + }, + ], + Array [ + Object { + "author": "alirezarzna", + "createdAt": 2020-03-05T10:11:40.000Z, + "numComments": 85, + "score": 909, + "title": "My first open source app: Sup, a Slack client with WhatsApp like UI. built using react-native and react-native-web", + "url": "https://reddit.com/r/reactjs/comments/fdt78p/my_first_open_source_app_sup_a_slack_client_with/", + }, + Object { + "author": "eneajaho", + "createdAt": 2020-09-10T09:09:49.000Z, + "numComments": 61, + "score": 505, + "title": "React in 100 seconds", + "url": "https://reddit.com/r/reactjs/comments/ipzuil/react_in_100_seconds/", + }, + Object { + "author": "theshubhagrwl", + "createdAt": 2020-07-16T09:12:47.000Z, + "numComments": 34, + "score": 234, + "title": "Movie time calculator", + "url": "https://reddit.com/r/reactjs/comments/hs6e7e/movie_time_calculator/", + }, + Object { + "author": "islempenywis", + "createdAt": 2019-12-26T10:00:18.000Z, + "numComments": 12, + "score": 233, + "title": "Create a Weather App on React with RESTFUL APIs from Scratch [Full App]", + "url": "https://reddit.com/r/reactjs/comments/eftpqv/create_a_weather_app_on_react_with_restful_apis/", + }, + Object { + "author": "goto-con", + "createdAt": 2019-12-12T10:25:13.000Z, + "numComments": 13, + "score": 179, + "title": "Building Resilient Frontend Architecture", + "url": "https://reddit.com/r/reactjs/comments/e9lwvq/building_resilient_frontend_architecture/", + }, + ], + Array [ + Object { + "author": "mikasarei", + "createdAt": 2020-09-03T10:05:46.000Z, + "numComments": 34, + "score": 408, + "title": "Made with love for React (accidentally deleted my first post)", + "url": "https://reddit.com/r/reactjs/comments/ilqmuv/made_with_love_for_react_accidentally_deleted_my/", + }, + Object { + "author": "adjouk", + "createdAt": 2020-04-23T10:48:25.000Z, + "numComments": 40, + "score": 229, + "title": "[Beginners Tutorial] React Hooks: How to set parent component state from within child", + "url": "https://reddit.com/r/reactjs/comments/g6ki1d/beginners_tutorial_react_hooks_how_to_set_parent/", + }, + Object { + "author": "kex_ari", + "createdAt": 2020-07-30T10:55:16.000Z, + "numComments": 20, + "score": 162, + "title": "A Simple Guide to React Context with Hooks", + "url": "https://reddit.com/r/reactjs/comments/i0k065/a_simple_guide_to_react_context_with_hooks/", + }, + ], + Array [ + Object { + "author": "pedrobern", + "createdAt": 2020-02-20T12:12:02.000Z, + "numComments": 31, + "score": 414, + "title": "my first react published app", + "url": "https://reddit.com/r/reactjs/comments/f6s6wc/my_first_react_published_app/", + }, + ], + Array [ + Object { + "author": "HolyShit6969", + "createdAt": 2019-11-07T13:14:43.000Z, + "numComments": 55, + "score": 370, + "title": "My first react app", + "url": "https://reddit.com/r/reactjs/comments/dsxjxw/my_first_react_app/", + }, + Object { + "author": "joel523", + "createdAt": 2019-10-31T13:01:01.000Z, + "numComments": 19, + "score": 231, + "title": "I made an avatar picker for my app's sign up flow using React.js", + "url": "https://reddit.com/r/reactjs/comments/dpn74z/i_made_an_avatar_picker_for_my_apps_sign_up_flow/", + }, + Object { + "author": "jefhee", + "createdAt": 2019-11-14T13:14:05.000Z, + "numComments": 2, + "score": 200, + "title": "For all the Unity developers in here, I've made a library to build your interfaces with two way binding! React Unity WebGL provides an easy solution for embedding Unity WebGL builds in your React application, with two-way communication between your React and Unity application with advanced API's.", + "url": "https://reddit.com/r/reactjs/comments/dw9dkx/for_all_the_unity_developers_in_here_ive_made_a/", + }, + Object { + "author": "rwieruch", + "createdAt": 2020-03-12T13:01:34.000Z, + "numComments": 40, + "score": 185, + "title": "Road to React: The one with Hooks", + "url": "https://reddit.com/r/reactjs/comments/fhfz5u/road_to_react_the_one_with_hooks/", + }, + Object { + "author": "st_tronn", + "createdAt": 2020-04-09T12:51:48.000Z, + "numComments": 65, + "score": 176, + "title": "A simple game to kill time", + "url": "https://reddit.com/r/reactjs/comments/fxrvha/a_simple_game_to_kill_time/", + }, + ], + Array [ + Object { + "author": "sld-codes", + "createdAt": 2020-07-02T13:48:02.000Z, + "numComments": 78, + "score": 279, + "title": "Just finished implementing the dark-mode toggle on the hero section of my personal site - You've got to have fun with these things!", + "url": "https://reddit.com/r/reactjs/comments/hjxblx/just_finished_implementing_the_darkmode_toggle_on/", + }, + Object { + "author": "antonio_ru", + "createdAt": 2020-01-02T14:58:01.000Z, + "numComments": 51, + "score": 225, + "title": "🔥A collection of beautiful and (hopefully) useful React hooks to speed-up your components and hooks development", + "url": "https://reddit.com/r/reactjs/comments/eiz7ru/a_collection_of_beautiful_and_hopefully_useful/", + }, + ], + Array [ + Object { + "author": "benawad", + "createdAt": 2020-08-20T14:25:13.000Z, + "numComments": 96, + "score": 1260, + "title": "In-depth 14 hour Fullstack React/GraphQL/TypeScript Tutorial", + "url": "https://reddit.com/r/reactjs/comments/idb8lr/indepth_14_hour_fullstack_reactgraphqltypescript/", + }, + Object { + "author": "swyx", + "createdAt": 2019-11-28T15:34:11.000Z, + "numComments": 28, + "score": 382, + "title": "How Discord achieves native iOS performance with React Native", + "url": "https://reddit.com/r/reactjs/comments/e2zj09/how_discord_achieves_native_ios_performance_with/", + }, + Object { + "author": "winkerVSbecks", + "createdAt": 2020-08-27T14:42:05.000Z, + "numComments": 40, + "score": 238, + "title": "Intro to Storybook 2020", + "url": "https://reddit.com/r/reactjs/comments/ihm8t8/intro_to_storybook_2020/", + }, + Object { + "author": "DynoNugget", + "createdAt": 2020-09-24T14:56:16.000Z, + "numComments": 21, + "score": 220, + "title": "Material UI Dashboard with React", + "url": "https://reddit.com/r/reactjs/comments/iyyrel/material_ui_dashboard_with_react/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-14T14:18:45.000Z, + "numComments": 67, + "score": 201, + "title": "\\"Next time we rewrite, likely we’ll go the Deno route: Rust core, TypeScript shell.\\" - Andrew Clark on Twitter", + "url": "https://reddit.com/r/reactjs/comments/gjn7ts/next_time_we_rewrite_likely_well_go_the_deno/", + }, + Object { + "author": "real_trizzaye", + "createdAt": 2020-09-17T14:27:06.000Z, + "numComments": 3, + "score": 182, + "title": "Building complex animations with React and Framer Motion", + "url": "https://reddit.com/r/reactjs/comments/iukir6/building_complex_animations_with_react_and_framer/", + }, + Object { + "author": "swyx", + "createdAt": 2020-02-06T15:43:04.000Z, + "numComments": 86, + "score": 175, + "title": "Meet the new Axios website (Next.js, TypeScript, GraphQL, Cloudflare Workers)", + "url": "https://reddit.com/r/reactjs/comments/ezu3tv/meet_the_new_axios_website_nextjs_typescript/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-28T14:13:41.000Z, + "numComments": 45, + "score": 169, + "title": "Stack Overflow Developer Survey 2020 - Web Frameworks", + "url": "https://reddit.com/r/reactjs/comments/gs70e2/stack_overflow_developer_survey_2020_web/", + }, + Object { + "author": "strvd", + "createdAt": 2020-04-16T14:17:40.000Z, + "numComments": 27, + "score": 164, + "title": "Free tickets available: Attend the biggest React conf in the cloud – April 17, 2020", + "url": "https://reddit.com/r/reactjs/comments/g2fqci/free_tickets_available_attend_the_biggest_react/", + }, + Object { + "author": "ramabhai", + "createdAt": 2019-10-17T14:52:50.000Z, + "numComments": 15, + "score": 154, + "title": "New react router with hooks realeased", + "url": "https://reddit.com/r/reactjs/comments/dj7hlj/new_react_router_with_hooks_realeased/", + }, + Object { + "author": "_maximization", + "createdAt": 2020-06-25T14:25:34.000Z, + "numComments": 15, + "score": 143, + "title": "Deploying to Github Pages? Don't Forget to Fix Your Links", + "url": "https://reddit.com/r/reactjs/comments/hfmzmy/deploying_to_github_pages_dont_forget_to_fix_your/", + }, + Object { + "author": "ant1g3n", + "createdAt": 2020-01-30T15:11:58.000Z, + "numComments": 127, + "score": 129, + "title": "Got a Job as a React developer to build an ecommerce site.", + "url": "https://reddit.com/r/reactjs/comments/ew6tzb/got_a_job_as_a_react_developer_to_build_an/", + }, + ], + Array [ + Object { + "author": "jhampac", + "createdAt": 2020-05-28T15:00:16.000Z, + "numComments": 36, + "score": 392, + "title": "React tutorials now on MDN", + "url": "https://reddit.com/r/reactjs/comments/gs7sqd/react_tutorials_now_on_mdn/", + }, + Object { + "author": "pomber", + "createdAt": 2019-11-14T16:26:57.000Z, + "numComments": 25, + "score": 369, + "title": "Build your own React", + "url": "https://reddit.com/r/reactjs/comments/dwbtrz/build_your_own_react/", + }, + Object { + "author": "nikke1234", + "createdAt": 2020-06-11T15:19:49.000Z, + "numComments": 11, + "score": 256, + "title": "[WIP] Click in your app and jump to the relevant code", + "url": "https://reddit.com/r/reactjs/comments/h11aqz/wip_click_in_your_app_and_jump_to_the_relevant/", + }, + Object { + "author": "jamalx31", + "createdAt": 2020-07-30T15:15:16.000Z, + "numComments": 16, + "score": 128, + "title": "Use create-react-app to develop Chrome extensions", + "url": "https://reddit.com/r/reactjs/comments/i0nstw/use_createreactapp_to_develop_chrome_extensions/", + }, + Object { + "author": "FullMetal21337", + "createdAt": 2020-01-23T16:49:15.000Z, + "numComments": 32, + "score": 125, + "title": "How do companies work with components at scale?", + "url": "https://reddit.com/r/reactjs/comments/esvr7w/how_do_companies_work_with_components_at_scale/", + }, + ], + Array [ + Object { + "author": "FriedGlamour", + "createdAt": 2020-09-03T16:22:46.000Z, + "numComments": 102, + "score": 719, + "title": "I built a drag-and-drop online quiz builder with Next.js and GraphQL during quarantine", + "url": "https://reddit.com/r/reactjs/comments/ilwo37/i_built_a_draganddrop_online_quiz_builder_with/", + }, + Object { + "author": "mikeour", + "createdAt": 2020-05-14T16:10:43.000Z, + "numComments": 131, + "score": 548, + "title": "Facebook has open sourced an experimental state management library for React called Recoil if anyone is interested.", + "url": "https://reddit.com/r/reactjs/comments/gjpbjc/facebook_has_open_sourced_an_experimental_state/", + }, + Object { + "author": "fallensadboy", + "createdAt": 2020-06-04T16:13:43.000Z, + "numComments": 62, + "score": 539, + "title": "Dan Abramov possibly leaving React team", + "url": "https://reddit.com/r/reactjs/comments/gwkhdg/dan_abramov_possibly_leaving_react_team/", + }, + Object { + "author": "gekorm", + "createdAt": 2019-10-03T16:36:22.000Z, + "numComments": 167, + "score": 362, + "title": "PSA: Axios is mostly dead", + "url": "https://reddit.com/r/reactjs/comments/dcte0e/psa_axios_is_mostly_dead/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-24T16:37:56.000Z, + "numComments": 25, + "score": 243, + "title": "Introducing Concurrent Mode (Experimental)", + "url": "https://reddit.com/r/reactjs/comments/dmizc4/introducing_concurrent_mode_experimental/", + }, + Object { + "author": "Ramirond", + "createdAt": 2019-10-10T16:52:10.000Z, + "numComments": 9, + "score": 200, + "title": "The Ultimate Guide to Next.js Authentication with Auth0", + "url": "https://reddit.com/r/reactjs/comments/dg0uc6/the_ultimate_guide_to_nextjs_authentication_with/", + }, + Object { + "author": "djadlen", + "createdAt": 2020-01-16T17:02:51.000Z, + "numComments": 6, + "score": 198, + "title": "D3.js dashboard tutorial with react and cube.js", + "url": "https://reddit.com/r/reactjs/comments/epm3na/d3js_dashboard_tutorial_with_react_and_cubejs/", + }, + Object { + "author": "domyen", + "createdAt": 2019-12-19T17:21:21.000Z, + "numComments": 31, + "score": 173, + "title": "State of Storybook 2019 – a breakout year for a popular frontend tool", + "url": "https://reddit.com/r/reactjs/comments/ecw9uj/state_of_storybook_2019_a_breakout_year_for_a/", + }, + ], + Array [ + Object { + "author": "marko_knoebl", + "createdAt": 2020-06-25T17:11:38.000Z, + "numComments": 32, + "score": 510, + "title": "I teach React courses - here's my collection of over 600 slides on various React topics (hosted on GitHub, licensed under CC-BY-SA)", + "url": "https://reddit.com/r/reactjs/comments/hfpxo3/i_teach_react_courses_heres_my_collection_of_over/", + }, + Object { + "author": "Visp3r", + "createdAt": 2020-04-30T17:25:13.000Z, + "numComments": 40, + "score": 409, + "title": "I'v made this Facebook-like reaction bar using ReactJS", + "url": "https://reddit.com/r/reactjs/comments/gb02e4/iv_made_this_facebooklike_reaction_bar_using/", + }, + Object { + "author": "swyx", + "createdAt": 2019-12-05T18:36:51.000Z, + "numComments": 32, + "score": 264, + "title": "Gatsby JS - The Great Gatsby Bootcamp [Full Tutorial]", + "url": "https://reddit.com/r/reactjs/comments/e6lezh/gatsby_js_the_great_gatsby_bootcamp_full_tutorial/", + }, + Object { + "author": "dance2die", + "createdAt": 2019-12-26T18:10:31.000Z, + "numComments": 14, + "score": 141, + "title": "Download Dan's Overreacted.io as an e-book!", + "url": "https://reddit.com/r/reactjs/comments/efypx1/download_dans_overreactedio_as_an_ebook/", + }, + Object { + "author": "scopsy", + "createdAt": 2020-03-26T18:53:38.000Z, + "numComments": 23, + "score": 141, + "title": "react-native released 0.62.0 🎉", + "url": "https://reddit.com/r/reactjs/comments/fph9ne/reactnative_released_0620/", + }, + Object { + "author": "kapilgorve", + "createdAt": 2019-11-21T18:27:24.000Z, + "numComments": 38, + "score": 124, + "title": "Pre-configured working virtual macOS setup to develop React Native ios apps on Windows10 .", + "url": "https://reddit.com/r/reactjs/comments/dznj46/preconfigured_working_virtual_macos_setup_to/", + }, + ], + Array [ + Object { + "author": "Smogchalk", + "createdAt": 2020-04-02T18:26:26.000Z, + "numComments": 37, + "score": 490, + "title": "Flowify - A new tab extension that I made. It uses React, Framer Motion, and Styled Components. https://addons.mozilla.org/en-US/firefox/addon/flowify/ https://github.com/Etesam913/flowify", + "url": "https://reddit.com/r/reactjs/comments/ftrlpf/flowify_a_new_tab_extension_that_i_made_it_uses/", + }, + Object { + "author": "GeneSy", + "createdAt": 2020-02-27T19:37:49.000Z, + "numComments": 27, + "score": 266, + "title": "Started working on a webapp last sunday to help make configs for Karabiner Elements. Its ugly but works! :) link in comments", + "url": "https://reddit.com/r/reactjs/comments/fahjru/started_working_on_a_webapp_last_sunday_to_help/", + }, + Object { + "author": "nullvoxpopuli", + "createdAt": 2020-03-12T19:59:50.000Z, + "numComments": 61, + "score": 228, + "title": "Improve build speed by moving node_modules into RAM", + "url": "https://reddit.com/r/reactjs/comments/fhmi4u/improve_build_speed_by_moving_node_modules_into/", + }, + Object { + "author": "dance2die", + "createdAt": 2020-08-13T18:50:12.000Z, + "numComments": 51, + "score": 199, + "title": "\\"The Opinionated Guide to React\\" book by Sara Vieira on Twitter", + "url": "https://reddit.com/r/reactjs/comments/i95r6r/the_opinionated_guide_to_react_book_by_sara/", + }, + Object { + "author": "andrew46999", + "createdAt": 2020-04-09T18:25:34.000Z, + "numComments": 13, + "score": 148, + "title": "react-see-through - Draw attention to specific components on your page", + "url": "https://reddit.com/r/reactjs/comments/fxxpfd/reactseethrough_draw_attention_to_specific/", + }, + ], + Array [ + Object { + "author": "bugzpodder", + "createdAt": 2020-06-18T19:29:08.000Z, + "numComments": 28, + "score": 130, + "title": "📦 Parcel 2 beta 1: improved stability, tree shaking, source map performance, and more! 🚀", + "url": "https://reddit.com/r/reactjs/comments/hbl72g/parcel_2_beta_1_improved_stability_tree_shaking/", + }, + ], + Array [ + Object { + "author": "therealmucah", + "createdAt": 2020-07-16T20:05:49.000Z, + "numComments": 51, + "score": 487, + "title": "Stream Party: watch and search YouTube videos in sync with your friends", + "url": "https://reddit.com/r/reactjs/comments/hsh9bg/stream_party_watch_and_search_youtube_videos_in/", + }, + Object { + "author": "swyx", + "createdAt": 2020-01-09T21:09:36.000Z, + "numComments": 20, + "score": 250, + "title": "Wes Bos' uses.tech - A list of /uses pages detailing developer setups, gear, software and configs - Gatsby + Netlify site", + "url": "https://reddit.com/r/reactjs/comments/emg036/wes_bos_usestech_a_list_of_uses_pages_detailing/", + }, + Object { + "author": "tchockie", + "createdAt": 2019-10-17T20:59:04.000Z, + "numComments": 31, + "score": 149, + "title": "Write readable styled-components with curry functions", + "url": "https://reddit.com/r/reactjs/comments/djcn4w/write_readable_styledcomponents_with_curry/", + }, + ], + Array [ + Object { + "author": "jones-macallan", + "createdAt": 2019-12-12T22:21:32.000Z, + "numComments": 23, + "score": 328, + "title": "I made a tutorial on how to make a App Intro component with animations [link in comment]", + "url": "https://reddit.com/r/reactjs/comments/e9unn2/i_made_a_tutorial_on_how_to_make_a_app_intro/", + }, + ], ], Array [ - 0, - 2, - 0, - 3, - 3, - 2, - 2, - 0, - 1, - 2, - 1, - 3, - 9, - 0, - 3, - 9, - 7, - 4, - 4, - 4, - 5, - 3, - 3, - 0, + Array [], + Array [ + Object { + "author": "jeffersonlicet", + "createdAt": 2020-07-30T23:37:24.000Z, + "numComments": 41, + "score": 266, + "title": "I've created a react hook to grab a color palette from images. It also renders a skeleton color while your original image still loading. Feedback appreciated", + "url": "https://reddit.com/r/reactjs/comments/i0wug1/ive_created_a_react_hook_to_grab_a_color_palette/", + }, + Object { + "author": "swyx", + "createdAt": 2020-07-23T23:36:47.000Z, + "numComments": 24, + "score": 228, + "title": "SpreadSheet Grid: Excel-like DataGrid component for React JS. Built for high performance rendering similar to google sheets.", + "url": "https://reddit.com/r/reactjs/comments/hwqsc9/spreadsheet_grid_excellike_datagrid_component_for/", + }, + ], + Array [], + Array [ + Object { + "author": "yjose", + "createdAt": 2020-04-24T01:01:06.000Z, + "numComments": 44, + "score": 506, + "title": "Forms in React Native, The right way 💪💪", + "url": "https://reddit.com/r/reactjs/comments/g6yybh/forms_in_react_native_the_right_way/", + }, + Object { + "author": "dreaminblack", + "createdAt": 2019-11-29T02:15:32.000Z, + "numComments": 30, + "score": 180, + "title": "Redux most common anti pattern", + "url": "https://reddit.com/r/reactjs/comments/e384bm/redux_most_common_anti_pattern/", + }, + Object { + "author": "lrobinson2011", + "createdAt": 2020-07-10T01:54:31.000Z, + "numComments": 54, + "score": 157, + "title": "Next.js: Server-side Rendering vs. Static Generation", + "url": "https://reddit.com/r/reactjs/comments/hog86c/nextjs_serverside_rendering_vs_static_generation/", + }, + ], + Array [ + Object { + "author": "z4ndrik0", + "createdAt": 2020-06-19T02:04:02.000Z, + "numComments": 91, + "score": 315, + "title": "I made an instagram clone", + "url": "https://reddit.com/r/reactjs/comments/hbryhy/i_made_an_instagram_clone/", + }, + Object { + "author": "swyx", + "createdAt": 2019-11-22T03:11:07.000Z, + "numComments": 43, + "score": 169, + "title": "This sub has grown 50% since July", + "url": "https://reddit.com/r/reactjs/comments/dzuy8h/this_sub_has_grown_50_since_july/", + }, + Object { + "author": "moneyisjustanumber", + "createdAt": 2020-05-22T02:46:08.000Z, + "numComments": 37, + "score": 145, + "title": "Looking for a good open source repo to look at that uses React and GraphQL", + "url": "https://reddit.com/r/reactjs/comments/gob259/looking_for_a_good_open_source_repo_to_look_at/", + }, + ], + Array [ + Object { + "author": "bugzpodder", + "createdAt": 2020-04-17T03:23:16.000Z, + "numComments": 67, + "score": 363, + "title": "Crank.js | Introducting Crank", + "url": "https://reddit.com/r/reactjs/comments/g2u135/crankjs_introducting_crank/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-06-12T03:51:15.000Z, + "numComments": 61, + "score": 344, + "title": "SpiderX - React Native + Python Scrapy", + "url": "https://reddit.com/r/reactjs/comments/h7dg2z/spiderx_react_native_python_scrapy/", + }, + ], + Array [ + Object { + "author": "theshubhagrwl", + "createdAt": 2020-09-18T04:16:04.000Z, + "numComments": 65, + "score": 456, + "title": "I made a Full Stack App with React and Django", + "url": "https://reddit.com/r/reactjs/comments/iuz8pk/i_made_a_full_stack_app_with_react_and_django/", + }, + Object { + "author": "dukko18", + "createdAt": 2020-03-06T05:34:21.000Z, + "numComments": 48, + "score": 130, + "title": "Mergefly - A new UI for GitHub", + "url": "https://reddit.com/r/reactjs/comments/fe8w1y/mergefly_a_new_ui_for_github/", + }, + ], + Array [], + Array [ + Object { + "author": "FateRiddle", + "createdAt": 2020-01-17T07:41:03.000Z, + "numComments": 103, + "score": 131, + "title": "Is redux really a good idea?", + "url": "https://reddit.com/r/reactjs/comments/epxavs/is_redux_really_a_good_idea/", + }, + ], + Array [ + Object { + "author": "ricokahler", + "createdAt": 2020-02-14T08:28:06.000Z, + "numComments": 52, + "score": 181, + "title": "In the past 30 days, I made an open source design system: Looking for feedback!", + "url": "https://reddit.com/r/reactjs/comments/f3pb73/in_the_past_30_days_i_made_an_open_source_design/", + }, + Object { + "author": "swyx", + "createdAt": 2020-03-27T08:18:37.000Z, + "numComments": 9, + "score": 128, + "title": "Serverless Stack - learn how to build a note taking app using Serverless and React on AWS", + "url": "https://reddit.com/r/reactjs/comments/fpt9w0/serverless_stack_learn_how_to_build_a_note_taking/", + }, + ], + Array [ + Object { + "author": "Kyleez", + "createdAt": 2019-12-20T09:19:36.000Z, + "numComments": 106, + "score": 123, + "title": "Learning React coming from Angular. I really liked having HTML in a separate file. JSX feels weird to me.", + "url": "https://reddit.com/r/reactjs/comments/ed7um6/learning_react_coming_from_angular_i_really_liked/", + }, + ], + Array [ + Object { + "author": "rich_awo", + "createdAt": 2020-09-25T09:31:20.000Z, + "numComments": 29, + "score": 289, + "title": "My first React project - a personal site.", + "url": "https://reddit.com/r/reactjs/comments/izghl9/my_first_react_project_a_personal_site/", + }, + Object { + "author": "rozenmd", + "createdAt": 2020-08-14T09:26:02.000Z, + "numComments": 119, + "score": 291, + "title": "A Guide to Commonly Used React Component Libraries", + "url": "https://reddit.com/r/reactjs/comments/i9iu7b/a_guide_to_commonly_used_react_component_libraries/", + }, + Object { + "author": "unsteadyrhinoceros", + "createdAt": 2020-05-29T09:49:59.000Z, + "numComments": 83, + "score": 197, + "title": "🎂Happy 6th Birthday React - what are you earliest memories? ⚛️", + "url": "https://reddit.com/r/reactjs/comments/gspypk/happy_6th_birthday_react_what_are_you_earliest/", + }, + ], + Array [ + Object { + "author": "fakiolinho", + "createdAt": 2020-05-08T10:11:45.000Z, + "numComments": 59, + "score": 371, + "title": "My React components render twice and drive me crazy", + "url": "https://reddit.com/r/reactjs/comments/gfqidi/my_react_components_render_twice_and_drive_me/", + }, + Object { + "author": "jameskingio", + "createdAt": 2020-04-10T10:22:45.000Z, + "numComments": 18, + "score": 262, + "title": "Build a Google Chrome Extension Using React (Full Project Download)", + "url": "https://reddit.com/r/reactjs/comments/fydd37/build_a_google_chrome_extension_using_react_full/", + }, + Object { + "author": "onoufriosm", + "createdAt": 2020-01-24T11:57:42.000Z, + "numComments": 46, + "score": 257, + "title": "Unit testing in React. Practical examples and advice on what, how and why to test.", + "url": "https://reddit.com/r/reactjs/comments/et9g7g/unit_testing_in_react_practical_examples_and/", + }, + Object { + "author": "eyembii", + "createdAt": 2020-07-17T10:29:37.000Z, + "numComments": 98, + "score": 219, + "title": "Hi! I just want to share my personal site.", + "url": "https://reddit.com/r/reactjs/comments/hstcg3/hi_i_just_want_to_share_my_personal_site/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-05-01T10:58:24.000Z, + "numComments": 43, + "score": 190, + "title": "Twitter clone using the RPG🚀stack", + "url": "https://reddit.com/r/reactjs/comments/gbg0k2/twitter_clone_using_the_rpgstack/", + }, + Object { + "author": "StrenghOfFuriousGods", + "createdAt": 2020-03-13T11:40:44.000Z, + "numComments": 78, + "score": 185, + "title": "Understanding writing tests for React", + "url": "https://reddit.com/r/reactjs/comments/fhyat9/understanding_writing_tests_for_react/", + }, + Object { + "author": "AfzalOzil360", + "createdAt": 2020-04-10T10:45:09.000Z, + "numComments": 35, + "score": 164, + "title": "How to get these animations working in react js? Is there a library that i can use or can it be done using plain css?", + "url": "https://reddit.com/r/reactjs/comments/fydnl9/how_to_get_these_animations_working_in_react_js/", + }, + Object { + "author": "giorat96", + "createdAt": 2019-11-01T11:20:42.000Z, + "numComments": 53, + "score": 150, + "title": "Build the Next Generation of Forms With React Hooks Forms", + "url": "https://reddit.com/r/reactjs/comments/dq2v1f/build_the_next_generation_of_forms_with_react/", + }, + Object { + "author": "strah1", + "createdAt": 2020-05-15T10:11:44.000Z, + "numComments": 38, + "score": 140, + "title": "React/Full stack projects to learn from", + "url": "https://reddit.com/r/reactjs/comments/gk6fji/reactfull_stack_projects_to_learn_from/", + }, + ], + Array [], + Array [ + Object { + "author": "svsem", + "createdAt": 2019-11-08T13:57:08.000Z, + "numComments": 42, + "score": 344, + "title": "I made this card memory game with React, it was a fun little project! You can play it online here: https://svsem.github.io/Memorai/", + "url": "https://reddit.com/r/reactjs/comments/dtfrrr/i_made_this_card_memory_game_with_react_it_was_a/", + }, + Object { + "author": "shinework", + "createdAt": 2020-03-20T13:34:09.000Z, + "numComments": 26, + "score": 180, + "title": "gqless: GraphQL client without queries", + "url": "https://reddit.com/r/reactjs/comments/flv3ym/gqless_graphql_client_without_queries/", + }, + Object { + "author": "adamwathan", + "createdAt": 2019-10-18T12:33:28.000Z, + "numComments": 7, + "score": 123, + "title": "Persistent Layout Patterns in Next.js", + "url": "https://reddit.com/r/reactjs/comments/djmult/persistent_layout_patterns_in_nextjs/", + }, + ], + Array [ + Object { + "author": "Larsnl", + "createdAt": 2020-03-27T14:07:40.000Z, + "numComments": 146, + "score": 617, + "title": "TikTok-esque app for browsing NSFW subreddits [NSFW]", + "url": "https://reddit.com/r/reactjs/comments/fpxj14/tiktokesque_app_for_browsing_nsfw_subreddits_nsfw/", + }, + Object { + "author": "mat-sz", + "createdAt": 2020-02-07T14:08:32.000Z, + "numComments": 89, + "score": 532, + "title": "Using React and node, I have created a website that allows everyone to share files between their devices without having to use long URLs or store the file on someone's servers.", + "url": "https://reddit.com/r/reactjs/comments/f0aymc/using_react_and_node_i_have_created_a_website/", + }, + Object { + "author": "jgugges", + "createdAt": 2020-08-21T13:41:11.000Z, + "numComments": 106, + "score": 325, + "title": "OkCupid Presents: Why we decided against GraphQL for local state management", + "url": "https://reddit.com/r/reactjs/comments/idwx8o/okcupid_presents_why_we_decided_against_graphql/", + }, + Object { + "author": "itonoli", + "createdAt": 2020-02-21T14:20:53.000Z, + "numComments": 15, + "score": 279, + "title": "New official stripe React lib - React Stripe.js", + "url": "https://reddit.com/r/reactjs/comments/f7bqg8/new_official_stripe_react_lib_react_stripejs/", + }, + Object { + "author": "the_sealed_tanker", + "createdAt": 2020-07-31T13:11:47.000Z, + "numComments": 68, + "score": 280, + "title": "Anix - Stream Animes", + "url": "https://reddit.com/r/reactjs/comments/i179m7/anix_stream_animes/", + }, + Object { + "author": "Vudujujus", + "createdAt": 2020-02-28T14:35:53.000Z, + "numComments": 173, + "score": 206, + "title": "Why is Redux necessary?", + "url": "https://reddit.com/r/reactjs/comments/favlhe/why_is_redux_necessary/", + }, + Object { + "author": "ArturCzemiel", + "createdAt": 2019-10-25T13:50:50.000Z, + "numComments": 5, + "score": 203, + "title": "GraphQL Interactive Tutorial", + "url": "https://reddit.com/r/reactjs/comments/dmxqhx/graphql_interactive_tutorial/", + }, + Object { + "author": "bmvantunes", + "createdAt": 2020-06-26T13:53:57.000Z, + "numComments": 36, + "score": 145, + "title": "React Material-UI Themes: Customize Material Components for your Project", + "url": "https://reddit.com/r/reactjs/comments/hg7zxe/react_materialui_themes_customize_material/", + }, + Object { + "author": "handsplz", + "createdAt": 2019-11-22T14:59:33.000Z, + "numComments": 8, + "score": 146, + "title": "GitHub - My first big boy React project: a Kubernetes love doctor", + "url": "https://reddit.com/r/reactjs/comments/e023e2/github_my_first_big_boy_react_project_a/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-01-10T15:06:30.000Z, + "numComments": 37, + "score": 723, + "title": "We have a new subreddit snoo thanks to /u/fjellet!", + "url": "https://reddit.com/r/reactjs/comments/ems5l0/we_have_a_new_subreddit_snoo_thanks_to_ufjellet/", + }, + Object { + "author": "WellyShen", + "createdAt": 2020-05-01T14:19:10.000Z, + "numComments": 64, + "score": 678, + "title": "✨ Introducing react-cool-inview - React hook to monitor an element enters or leaves the viewport. (GitHub: https://github.com/wellyshen/react-cool-inview)", + "url": "https://reddit.com/r/reactjs/comments/gbixbc/introducing_reactcoolinview_react_hook_to_monitor/", + }, + Object { + "author": "_MORSE_", + "createdAt": 2020-06-05T14:43:30.000Z, + "numComments": 3, + "score": 270, + "title": "Mini graphiql component to document graphql API queries", + "url": "https://reddit.com/r/reactjs/comments/gx5vdx/mini_graphiql_component_to_document_graphql_api/", + }, + Object { + "author": "digilifecz123", + "createdAt": 2019-10-04T14:12:02.000Z, + "numComments": 60, + "score": 266, + "title": "Just published a React Animated Icons library!", + "url": "https://reddit.com/r/reactjs/comments/dd7wb6/just_published_a_react_animated_icons_library/", + }, + Object { + "author": "mariuz", + "createdAt": 2020-03-06T15:28:32.000Z, + "numComments": 29, + "score": 243, + "title": "Deep Dive into Redux Toolkit with React - Complete Guide", + "url": "https://reddit.com/r/reactjs/comments/fef14k/deep_dive_into_redux_toolkit_with_react_complete/", + }, + Object { + "author": "iSidney", + "createdAt": 2020-04-24T14:54:45.000Z, + "numComments": 78, + "score": 167, + "title": "I made the same web app in Gatsby and Next.js and found Gatsby performed better", + "url": "https://reddit.com/r/reactjs/comments/g79s4e/i_made_the_same_web_app_in_gatsby_and_nextjs_and/", + }, + Object { + "author": "bryan12294", + "createdAt": 2020-07-24T14:10:34.000Z, + "numComments": 2, + "score": 135, + "title": "React Highcharts Example with Cube.js", + "url": "https://reddit.com/r/reactjs/comments/hx2fy9/react_highcharts_example_with_cubejs/", + }, + ], + Array [ + Object { + "author": "Connect-Major", + "createdAt": 2020-05-22T15:07:44.000Z, + "numComments": 47, + "score": 300, + "title": "⚡️Introducing react-shimmer: Async loading, performant Image component for React.js", + "url": "https://reddit.com/r/reactjs/comments/gol1ou/introducing_reactshimmer_async_loading_performant/", + }, + Object { + "author": "VanaticalDesign", + "createdAt": 2020-07-10T15:46:51.000Z, + "numComments": 55, + "score": 238, + "title": "A demo of the new beta for my trip planning app, Tour, built completely with React Native.", + "url": "https://reddit.com/r/reactjs/comments/horafr/a_demo_of_the_new_beta_for_my_trip_planning_app/", + }, + Object { + "author": "andrewray", + "createdAt": 2020-04-03T15:57:24.000Z, + "numComments": 48, + "score": 210, + "title": "show reddit: I made something very silly in react: the mlemmer blepper", + "url": "https://reddit.com/r/reactjs/comments/fuawdr/show_reddit_i_made_something_very_silly_in_react/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-18T15:54:38.000Z, + "numComments": 15, + "score": 185, + "title": "55 Lessons from 5 Years in React - Cory House", + "url": "https://reddit.com/r/reactjs/comments/djpgsg/55_lessons_from_5_years_in_react_cory_house/", + }, + ], + Array [ + Object { + "author": "adjouk", + "createdAt": 2020-04-17T16:06:26.000Z, + "numComments": 36, + "score": 618, + "title": "I've started a mini-series where I try to replicate popular UI's. The first episode is Spotify (I cover the basic styling & setup). Follow along if you like!", + "url": "https://reddit.com/r/reactjs/comments/g34vqr/ive_started_a_miniseries_where_i_try_to_replicate/", + }, + Object { + "author": "swyx", + "createdAt": 2020-08-07T16:43:08.000Z, + "numComments": 191, + "score": 384, + "title": "State of Frontend 2020 Survey - 74% use React, 34% think Redux will be dead in 3 years, Next.js/Gatsby are basically tied for SSG", + "url": "https://reddit.com/r/reactjs/comments/i5h7ou/state_of_frontend_2020_survey_74_use_react_34/", + }, + Object { + "author": "ZeCookieMunsta", + "createdAt": 2020-07-03T16:01:58.000Z, + "numComments": 27, + "score": 338, + "title": "Quick and Easy app: Vector Field Generator!", + "url": "https://reddit.com/r/reactjs/comments/hklmz7/quick_and_easy_app_vector_field_generator/", + }, + Object { + "author": "swyx", + "createdAt": 2020-09-18T16:54:34.000Z, + "numComments": 36, + "score": 226, + "title": "Vue 3.0", + "url": "https://reddit.com/r/reactjs/comments/iv9uu7/vue_30/", + }, + ], + Array [ + Object { + "author": "mikaelainalem", + "createdAt": 2020-08-28T17:27:12.000Z, + "numComments": 10, + "score": 415, + "title": "Read about creating SVG morphing effects with react-spring in my latest article on CSS-tricks", + "url": "https://reddit.com/r/reactjs/comments/iibdrh/read_about_creating_svg_morphing_effects_with/", + }, + Object { + "author": "rakso93", + "createdAt": 2020-09-04T17:05:47.000Z, + "numComments": 18, + "score": 256, + "title": "Create a React app with Typescript, Redux and OAuth 2.0 user authorization", + "url": "https://reddit.com/r/reactjs/comments/imjupb/create_a_react_app_with_typescript_redux_and/", + }, + Object { + "author": "jnforja", + "createdAt": 2020-05-15T17:17:20.000Z, + "numComments": 22, + "score": 204, + "title": "Don't know what to test on your React App? Learn how to make a test list.", + "url": "https://reddit.com/r/reactjs/comments/gkd9l3/dont_know_what_to_test_on_your_react_app_learn/", + }, + Object { + "author": "droctagonapus", + "createdAt": 2019-11-29T18:59:30.000Z, + "numComments": 22, + "score": 119, + "title": "Jordan Walke - React to the Future", + "url": "https://reddit.com/r/reactjs/comments/e3j29k/jordan_walke_react_to_the_future/", + }, + ], + Array [ + Object { + "author": "ganachie", + "createdAt": 2020-06-12T18:17:14.000Z, + "numComments": 29, + "score": 652, + "title": "BrutalityVisualizer - an interactive heatmap visualization of police brutality incidents in the US", + "url": "https://reddit.com/r/reactjs/comments/h7q18l/brutalityvisualizer_an_interactive_heatmap/", + }, + Object { + "author": "Eru_Iluvatarh", + "createdAt": 2020-05-29T18:11:29.000Z, + "numComments": 215, + "score": 490, + "title": "I’ve finally built my portfolio to showcase my work", + "url": "https://reddit.com/r/reactjs/comments/gsy26e/ive_finally_built_my_portfolio_to_showcase_my_work/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-08T18:35:17.000Z, + "numComments": 78, + "score": 354, + "title": "Rebuilding our tech stack for a new Facebook.com - Facebook Engineering", + "url": "https://reddit.com/r/reactjs/comments/gfyr43/rebuilding_our_tech_stack_for_a_new_facebookcom/", + }, + Object { + "author": "storycreatormichael", + "createdAt": 2020-02-28T19:05:37.000Z, + "numComments": 54, + "score": 232, + "title": "I built a FREE online video editor using React.js", + "url": "https://reddit.com/r/reactjs/comments/fazrti/i_built_a_free_online_video_editor_using_reactjs/", + }, + Object { + "author": "Charles_Stover", + "createdAt": 2019-10-25T18:57:36.000Z, + "numComments": 20, + "score": 115, + "title": "Can someone summarize the best ReactConf talks each day for those of us who cannot watch live?", + "url": "https://reddit.com/r/reactjs/comments/dn20d8/can_someone_summarize_the_best_reactconf_talks/", + }, + ], + Array [ + Object { + "author": "patrik_pk", + "createdAt": 2020-01-17T20:17:05.000Z, + "numComments": 61, + "score": 537, + "title": "I made a simple RPG game as my first React.js project and wanted to share", + "url": "https://reddit.com/r/reactjs/comments/eq5sjk/i_made_a_simple_rpg_game_as_my_first_reactjs/", + }, + Object { + "author": "justinkim943", + "createdAt": 2020-01-31T20:07:54.000Z, + "numComments": 22, + "score": 215, + "title": "Lets update Official React's Tic Tac Toe Tutorial with Hooks and Typescript! (Video Tutorial)", + "url": "https://reddit.com/r/reactjs/comments/ewu3jm/lets_update_official_reacts_tic_tac_toe_tutorial/", + }, + Object { + "author": "rumforpenguins", + "createdAt": 2020-02-14T20:22:52.000Z, + "numComments": 32, + "score": 160, + "title": "I made my first real React App: a site to help people learn songs on the flute. I would love any and all feedback and constructive criticism!", + "url": "https://reddit.com/r/reactjs/comments/f3y5cy/i_made_my_first_real_react_app_a_site_to_help/", + }, + ], + Array [ + Object { + "author": "Protectator", + "createdAt": 2020-09-25T20:07:40.000Z, + "numComments": 14, + "score": 143, + "title": "I made some unofficial JSX and TSX logos if you're like logos like me", + "url": "https://reddit.com/r/reactjs/comments/izqxuf/i_made_some_unofficial_jsx_and_tsx_logos_if_youre/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-04T20:37:16.000Z, + "numComments": 16, + "score": 131, + "title": "Retro nostalgia & why my new website looks like Windows 9x (made with React/Preact)", + "url": "https://reddit.com/r/reactjs/comments/ddd53z/retro_nostalgia_why_my_new_website_looks_like/", + }, + Object { + "author": "chantastic_", + "createdAt": 2019-11-01T21:54:48.000Z, + "numComments": 4, + "score": 124, + "title": "Andrew Clark (React Core Team member) on Concurrent Mode", + "url": "https://reddit.com/r/reactjs/comments/dqb2g7/andrew_clark_react_core_team_member_on_concurrent/", + }, + ], + Array [], ], Array [ - 1, - 2, - 3, - 1, - 2, - 0, - 2, - 1, - 4, - 2, - 3, - 4, - 2, - 4, - 6, - 6, - 7, - 3, - 4, - 5, - 6, - 1, - 5, - 3, + Array [ + Object { + "author": "magenta_placenta", + "createdAt": 2020-07-17T22:40:45.000Z, + "numComments": 25, + "score": 182, + "title": "Plasmic - enables developers and designers to compose React UIs visually. It lets you start with rough designs from Figma/Sketch or from scratch, and refactor them into maintainable, production-ready presentational components", + "url": "https://reddit.com/r/reactjs/comments/ht5l5z/plasmic_enables_developers_and_designers_to/", + }, + ], + Array [ + Object { + "author": "TheLadDothCallMe", + "createdAt": 2019-11-09T00:54:21.000Z, + "numComments": 33, + "score": 367, + "title": "My first useful (second actual) React app - responsive PWA cycle parking map", + "url": "https://reddit.com/r/reactjs/comments/dtovt0/my_first_useful_second_actual_react_app/", + }, + Object { + "author": "youslashuser", + "createdAt": 2019-12-07T00:49:45.000Z, + "numComments": 143, + "score": 162, + "title": "Is Material UI worth it?", + "url": "https://reddit.com/r/reactjs/comments/e77e5n/is_material_ui_worth_it/", + }, + ], + Array [ + Object { + "author": "ZeCookieMunsta", + "createdAt": 2020-06-20T00:46:52.000Z, + "numComments": 70, + "score": 518, + "title": "My first Full-Stack project: online multiplayer Tic-Tac-Toe!", + "url": "https://reddit.com/r/reactjs/comments/hccnc2/my_first_fullstack_project_online_multiplayer/", + }, + Object { + "author": "nerdy_adventurer", + "createdAt": 2020-02-22T01:00:38.000Z, + "numComments": 24, + "score": 337, + "title": "Introducing Firefox and Edge Support in Cypress 4.0", + "url": "https://reddit.com/r/reactjs/comments/f7l0u3/introducing_firefox_and_edge_support_in_cypress_40/", + }, + Object { + "author": "gaearon", + "createdAt": 2019-12-21T01:06:57.000Z, + "numComments": 210, + "score": 256, + "title": "What Is JavaScript Made Of?", + "url": "https://reddit.com/r/reactjs/comments/edj1dr/what_is_javascript_made_of/", + }, + ], + Array [ + Object { + "author": "wobsoriano", + "createdAt": 2020-03-14T02:39:10.000Z, + "numComments": 77, + "score": 462, + "title": "A Windows 95 style Pokédex built with React.", + "url": "https://reddit.com/r/reactjs/comments/fibnwh/a_windows_95_style_pokédex_built_with_react/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2019-11-16T03:47:17.000Z, + "numComments": 30, + "score": 226, + "title": "Using Composition in React to Avoid \\"Prop Drilling\\" - 15min lesson from Michael Jackson", + "url": "https://reddit.com/r/reactjs/comments/dx1rxw/using_composition_in_react_to_avoid_prop_drilling/", + }, + Object { + "author": "johnsakic", + "createdAt": 2020-01-25T03:04:53.000Z, + "numComments": 39, + "score": 124, + "title": "Is there any tutorial that shows someone fixing up a badly written React app?", + "url": "https://reddit.com/r/reactjs/comments/etl7m0/is_there_any_tutorial_that_shows_someone_fixing/", + }, + ], + Array [], + Array [ + Object { + "author": "its_freaky", + "createdAt": 2020-08-08T04:31:13.000Z, + "numComments": 80, + "score": 340, + "title": "So I made Reddit with Instagram's UI", + "url": "https://reddit.com/r/reactjs/comments/i5t04c/so_i_made_reddit_with_instagrams_ui/", + }, + Object { + "author": "helloncanella", + "createdAt": 2019-10-19T04:41:23.000Z, + "numComments": 22, + "score": 170, + "title": "useParams — Extract parameters from the URL in one line.", + "url": "https://reddit.com/r/reactjs/comments/djz2ns/useparams_extract_parameters_from_the_url_in_one/", + }, + ], + Array [ + Object { + "author": "marcelovicentegc", + "createdAt": 2020-08-15T05:02:48.000Z, + "numComments": 18, + "score": 118, + "title": "React + Typescirpt + DJANGO boilerplate", + "url": "https://reddit.com/r/reactjs/comments/ia1kzv/react_typescirpt_django_boilerplate/", + }, + ], + Array [ + Object { + "author": "masoud_pezeshkzade", + "createdAt": 2020-09-12T06:12:07.000Z, + "numComments": 71, + "score": 262, + "title": "I built a SERVERLESS VIDEO CHAT app in REACTJS using WEBRTC and FIREBASE", + "url": "https://reddit.com/r/reactjs/comments/ir7cxa/i_built_a_serverless_video_chat_app_in_reactjs/", + }, + Object { + "author": "mcao", + "createdAt": 2020-07-11T06:46:39.000Z, + "numComments": 48, + "score": 234, + "title": "Astrofox - I made a motion graphics program for turning music visualizations into videos. Built with React, WebGL, and Electron. Free to use.", + "url": "https://reddit.com/r/reactjs/comments/hp5jiy/astrofox_i_made_a_motion_graphics_program_for/", + }, + Object { + "author": "Artane_", + "createdAt": 2020-09-26T06:41:55.000Z, + "numComments": 135, + "score": 199, + "title": "I applied for 100+ jobs but no interview", + "url": "https://reddit.com/r/reactjs/comments/j013yg/i_applied_for_100_jobs_but_no_interview/", + }, + Object { + "author": "aganglada", + "createdAt": 2020-02-15T07:57:49.000Z, + "numComments": 57, + "score": 134, + "title": "When to use useEffect or useLayoutEffect", + "url": "https://reddit.com/r/reactjs/comments/f46gu9/when_to_use_useeffect_or_uselayouteffect/", + }, + ], + Array [ + Object { + "author": "salihozdemr", + "createdAt": 2020-09-05T07:26:31.000Z, + "numComments": 66, + "score": 644, + "title": "I made clone of stackoverflow with React/Next, please check out!", + "url": "https://reddit.com/r/reactjs/comments/imx0jy/i_made_clone_of_stackoverflow_with_reactnext/", + }, + Object { + "author": "mickykebe", + "createdAt": 2020-06-27T07:32:21.000Z, + "numComments": 40, + "score": 149, + "title": "New HackerNews Frontend built with React", + "url": "https://reddit.com/r/reactjs/comments/hgp83a/new_hackernews_frontend_built_with_react/", + }, + ], + Array [ + Object { + "author": "giorat96", + "createdAt": 2019-11-23T09:12:50.000Z, + "numComments": 24, + "score": 170, + "title": "[Tutorial Axios Hooks] Using Promises and Await was hard for me, but using Hooks helped me write cleaner and much faster HTTP requests without any fatigue", + "url": "https://reddit.com/r/reactjs/comments/e0fkqo/tutorial_axios_hooks_using_promises_and_await_was/", + }, + Object { + "author": "staviuss", + "createdAt": 2020-09-19T08:36:18.000Z, + "numComments": 29, + "score": 151, + "title": "Music Analyzer - MERN Stack Web app using the Spotify API", + "url": "https://reddit.com/r/reactjs/comments/ivotz2/music_analyzer_mern_stack_web_app_using_the/", + }, + Object { + "author": "r-wabbit", + "createdAt": 2020-04-04T08:40:45.000Z, + "numComments": 14, + "score": 145, + "title": "How to test custom React hooks", + "url": "https://reddit.com/r/reactjs/comments/fuq6py/how_to_test_custom_react_hooks/", + }, + ], + Array [ + Object { + "author": "luuk-dv", + "createdAt": 2020-06-06T09:51:05.000Z, + "numComments": 48, + "score": 810, + "title": "I've created a tiny component for applying a 'gooey' effect, also known as shape blobbing.", + "url": "https://reddit.com/r/reactjs/comments/gxo4oo/ive_created_a_tiny_component_for_applying_a_gooey/", + }, + Object { + "author": "PickleRick104", + "createdAt": 2019-11-16T10:13:02.000Z, + "numComments": 19, + "score": 442, + "title": "Scan to Listen: React Native app for scanning book barcodes to find matching audiobook!", + "url": "https://reddit.com/r/reactjs/comments/dx54e7/scan_to_listen_react_native_app_for_scanning_book/", + }, + Object { + "author": "luuk-dv", + "createdAt": 2020-03-21T10:35:56.000Z, + "numComments": 61, + "score": 374, + "title": "I've created a little React package for animated hamburger icons. 🍔 Any type of feedback is really appreciated.", + "url": "https://reddit.com/r/reactjs/comments/fmd36e/ive_created_a_little_react_package_for_animated/", + }, + Object { + "author": "haykerman", + "createdAt": 2019-12-07T10:34:03.000Z, + "numComments": 50, + "score": 151, + "title": "Setting up ESLint & Prettier for React App in VSCode", + "url": "https://reddit.com/r/reactjs/comments/e7cvgi/setting_up_eslint_prettier_for_react_app_in_vscode/", + }, + ], + Array [ + Object { + "author": "WellyShen", + "createdAt": 2020-06-27T10:47:47.000Z, + "numComments": 28, + "score": 482, + "title": "✨ useWebAnimations x Animate.css", + "url": "https://reddit.com/r/reactjs/comments/hgrfse/usewebanimations_x_animatecss/", + }, + Object { + "author": "masoud_pezeshkzade", + "createdAt": 2020-09-12T10:32:42.000Z, + "numComments": 13, + "score": 202, + "title": "Serverless Video Chat App using Firebase and WebRTC in React", + "url": "https://reddit.com/r/reactjs/comments/iraa9e/serverless_video_chat_app_using_firebase_and/", + }, + ], + Array [ + Object { + "author": "Caseyrover", + "createdAt": 2020-07-04T11:04:39.000Z, + "numComments": 28, + "score": 746, + "title": "Screenshot.rocks - Web app to create browser mockups from screenshots", + "url": "https://reddit.com/r/reactjs/comments/hl1l9b/screenshotrocks_web_app_to_create_browser_mockups/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-12T11:29:57.000Z, + "numComments": 24, + "score": 421, + "title": "How Instagram uses Redux", + "url": "https://reddit.com/r/reactjs/comments/dgty2t/how_instagram_uses_redux/", + }, + Object { + "author": "Cannabat", + "createdAt": 2020-05-02T11:59:38.000Z, + "numComments": 44, + "score": 184, + "title": "Lifelike - the cellular automata browser toy I've always wanted (first React app)", + "url": "https://reddit.com/r/reactjs/comments/gc5ag6/lifelike_the_cellular_automata_browser_toy_ive/", + }, + Object { + "author": "tensorhere", + "createdAt": 2020-03-07T12:46:56.000Z, + "numComments": 21, + "score": 161, + "title": "Resources for learning react under the hood?", + "url": "https://reddit.com/r/reactjs/comments/feuoq8/resources_for_learning_react_under_the_hood/", + }, + ], + Array [ + Object { + "author": "swyx", + "createdAt": 2020-09-26T12:59:52.000Z, + "numComments": 12, + "score": 248, + "title": "Happy 3rd Birthday React 16 🎂", + "url": "https://reddit.com/r/reactjs/comments/j05ltw/happy_3rd_birthday_react_16/", + }, + Object { + "author": "vertigo_101", + "createdAt": 2020-07-25T12:55:54.000Z, + "numComments": 9, + "score": 235, + "title": "GraphQL first full-stack starter kit with Node, React. Powered by TypeScript", + "url": "https://reddit.com/r/reactjs/comments/hxm9ti/graphql_first_fullstack_starter_kit_with_node/", + }, + Object { + "author": "monosinplata", + "createdAt": 2020-03-28T13:14:05.000Z, + "numComments": 48, + "score": 191, + "title": "Introduction to MobX & React in 2020", + "url": "https://reddit.com/r/reactjs/comments/fqjyit/introduction_to_mobx_react_in_2020/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-09T12:04:23.000Z, + "numComments": 8, + "score": 158, + "title": "Improved Next.js and Gatsby page load performance with granular chunking", + "url": "https://reddit.com/r/reactjs/comments/ggebb9/improved_nextjs_and_gatsby_page_load_performance/", + }, + Object { + "author": "borzeckid", + "createdAt": 2020-02-08T13:50:48.000Z, + "numComments": 21, + "score": 153, + "title": "🎹react-synth 🎹", + "url": "https://reddit.com/r/reactjs/comments/f0rtbv/reactsynth/", + }, + Object { + "author": "termoxin", + "createdAt": 2019-10-26T12:30:02.000Z, + "numComments": 3, + "score": 131, + "title": "Build a Workout Diary App with React #1 | Getting started", + "url": "https://reddit.com/r/reactjs/comments/dnd91w/build_a_workout_diary_app_with_react_1_getting/", + }, + ], + Array [ + Object { + "author": "nosyminotaur", + "createdAt": 2019-10-05T13:16:50.000Z, + "numComments": 15, + "score": 392, + "title": "Made my first game in ReactJS", + "url": "https://reddit.com/r/reactjs/comments/ddn4qp/made_my_first_game_in_reactjs/", + }, + Object { + "author": "BrockUrSocksOff", + "createdAt": 2020-01-18T14:19:19.000Z, + "numComments": 52, + "score": 302, + "title": "ReactJS Crash Course 2020 | React Functional Components, Hooks, and React Router [<30 minutes]", + "url": "https://reddit.com/r/reactjs/comments/eqgwds/reactjs_crash_course_2020_react_functional/", + }, + Object { + "author": "mat-sz", + "createdAt": 2020-04-11T13:42:24.000Z, + "numComments": 20, + "score": 207, + "title": "I have created a React component designed for displaying HTML e-mail contents safely, matching Gmail's rendering and support for HTML/CSS features. Other features include first-class TypeScript support and no extra dependencies.", + "url": "https://reddit.com/r/reactjs/comments/fz5hua/i_have_created_a_react_component_designed_for/", + }, + Object { + "author": "misterowner", + "createdAt": 2020-03-07T14:27:30.000Z, + "numComments": 45, + "score": 150, + "title": "We've built a tool to help developers grow in their career", + "url": "https://reddit.com/r/reactjs/comments/fevsm3/weve_built_a_tool_to_help_developers_grow_in/", + }, + Object { + "author": "aaronksaunders", + "createdAt": 2020-08-22T13:21:40.000Z, + "numComments": 29, + "score": 143, + "title": "Using Window.matchMedia() to do media queries in reactjs", + "url": "https://reddit.com/r/reactjs/comments/ieibw8/using_windowmatchmedia_to_do_media_queries_in/", + }, + Object { + "author": "samselikoff", + "createdAt": 2019-11-02T14:29:37.000Z, + "numComments": 10, + "score": 125, + "title": "UI Testing with React, Mirage, Jest and Testing Library", + "url": "https://reddit.com/r/reactjs/comments/dqkx1v/ui_testing_with_react_mirage_jest_and_testing/", + }, + ], + Array [ + Object { + "author": "PresoDalPanico", + "createdAt": 2020-02-29T15:39:09.000Z, + "numComments": 97, + "score": 367, + "title": "I made a small social network in MERN, link in the comments", + "url": "https://reddit.com/r/reactjs/comments/fbe73v/i_made_a_small_social_network_in_mern_link_in_the/", + }, + Object { + "author": "_HxH_", + "createdAt": 2020-01-04T15:30:38.000Z, + "numComments": 21, + "score": 341, + "title": "I developed Astuto, a self hosted customer feedback tool (React frontend)", + "url": "https://reddit.com/r/reactjs/comments/ejxyhj/i_developed_astuto_a_self_hosted_customer/", + }, + Object { + "author": "iGuitars", + "createdAt": 2020-04-18T14:40:12.000Z, + "numComments": 14, + "score": 245, + "title": "React Performance Optimization with React.memo()", + "url": "https://reddit.com/r/reactjs/comments/g3ojg7/react_performance_optimization_with_reactmemo/", + }, + Object { + "author": "brainhack3r", + "createdAt": 2020-08-15T14:59:06.000Z, + "numComments": 26, + "score": 201, + "title": "Any other typescript users constantly confused between JSX.Element, React.ReactNode, React.ReactElement, React.ComponentType when using memo, context, HOCs, etc?", + "url": "https://reddit.com/r/reactjs/comments/ia8sdi/any_other_typescript_users_constantly_confused/", + }, + Object { + "author": "franksvalli", + "createdAt": 2020-02-01T15:17:09.000Z, + "numComments": 49, + "score": 200, + "title": "React Router v6.0.0-alpha.0 released, with relative and nested routes, suspense-based navigations", + "url": "https://reddit.com/r/reactjs/comments/ex7ieb/react_router_v600alpha0_released_with_relative/", + }, + Object { + "author": "Tyler_Potts_", + "createdAt": 2020-01-11T15:51:14.000Z, + "numComments": 14, + "score": 195, + "title": "Build a Weather App in React JS | React JS beginner Tutorial", + "url": "https://reddit.com/r/reactjs/comments/en90sv/build_a_weather_app_in_react_js_react_js_beginner/", + }, + Object { + "author": "CodePerfect", + "createdAt": 2019-11-09T15:49:58.000Z, + "numComments": 38, + "score": 190, + "title": "Microsoft looks to React Native as a way to tackle the cross-platform development puzzle", + "url": "https://reddit.com/r/reactjs/comments/dtxm2v/microsoft_looks_to_react_native_as_a_way_to/", + }, + ], + Array [ + Object { + "author": "justinkim943", + "createdAt": 2020-02-22T16:01:19.000Z, + "numComments": 35, + "score": 215, + "title": "Getting started with the official Redux Template for create-react-app (Video)", + "url": "https://reddit.com/r/reactjs/comments/f7ue0y/getting_started_with_the_official_redux_template/", + }, + Object { + "author": "dotjosh", + "createdAt": 2020-07-18T15:48:38.000Z, + "numComments": 47, + "score": 181, + "title": "As a Florida resident, I was tired of visiting several slow mobile-unfriendly Covid Dashboards to get the info I wanted (including my local Tampa Bay stats). So I built COVJOSH.COM for my friends and myself to get real-time data.", + "url": "https://reddit.com/r/reactjs/comments/htiqy8/as_a_florida_resident_i_was_tired_of_visiting/", + }, + Object { + "author": "swyx", + "createdAt": 2019-10-19T15:36:09.000Z, + "numComments": 14, + "score": 136, + "title": "Framer Guide to React", + "url": "https://reddit.com/r/reactjs/comments/dk5b8w/framer_guide_to_react/", + }, + ], + Array [ + Object { + "author": "acemarke", + "createdAt": 2020-05-16T16:45:13.000Z, + "numComments": 50, + "score": 446, + "title": "A (Mostly) Complete Guide to React Rendering Behavior", + "url": "https://reddit.com/r/reactjs/comments/gkxs7g/a_mostly_complete_guide_to_react_rendering/", + }, + Object { + "author": "subnub99", + "createdAt": 2020-06-13T16:51:15.000Z, + "numComments": 23, + "score": 436, + "title": "MyDrive - Open Source Google Drive Clone (Node, Docker, Amazon S3, React, MongoDB)", + "url": "https://reddit.com/r/reactjs/comments/h8b1xz/mydrive_open_source_google_drive_clone_node/", + }, + Object { + "author": "Paol-imi", + "createdAt": 2020-05-23T16:36:51.000Z, + "numComments": 36, + "score": 282, + "title": "⚛️ Reparenting is now possible with React", + "url": "https://reddit.com/r/reactjs/comments/gp7yld/reparenting_is_now_possible_with_react/", + }, + Object { + "author": "simontreny", + "createdAt": 2019-12-21T17:08:55.000Z, + "numComments": 87, + "score": 228, + "title": "Replacing Redux with observables and React Hooks", + "url": "https://reddit.com/r/reactjs/comments/edsdr5/replacing_redux_with_observables_and_react_hooks/", + }, + ], + Array [ + Object { + "author": "zsaraf", + "createdAt": 2020-07-11T17:00:04.000Z, + "numComments": 117, + "score": 1363, + "title": "Stems - Mac + Windows app built using React/Typescript/Electron that takes a song and breaks it apart into isolated vocal, instrumental, drum, and bass tracks.", + "url": "https://reddit.com/r/reactjs/comments/hpdfp3/stems_mac_windows_app_built_using/", + }, + Object { + "author": "flyvenn", + "createdAt": 2020-06-20T17:02:39.000Z, + "numComments": 38, + "score": 315, + "title": "How to replicate Zelda BOTW interface with React, Tailwind and Framer-motion", + "url": "https://reddit.com/r/reactjs/comments/hcppxi/how_to_replicate_zelda_botw_interface_with_react/", + }, + Object { + "author": "monolithburger", + "createdAt": 2020-04-25T17:16:29.000Z, + "numComments": 54, + "score": 315, + "title": "I made a Donald Trump press conference simulator in react.js (create-react-app)", + "url": "https://reddit.com/r/reactjs/comments/g7x8ii/i_made_a_donald_trump_press_conference_simulator/", + }, + Object { + "author": "superbacon807", + "createdAt": 2020-08-01T17:25:52.000Z, + "numComments": 32, + "score": 247, + "title": "Data-fetching library SWR now has pagination and infinite loading", + "url": "https://reddit.com/r/reactjs/comments/i1vxgo/datafetching_library_swr_now_has_pagination_and/", + }, + Object { + "author": "benaffleks", + "createdAt": 2020-02-15T18:38:35.000Z, + "numComments": 46, + "score": 161, + "title": "React Best Practices?", + "url": "https://reddit.com/r/reactjs/comments/f4dkaj/react_best_practices/", + }, + ], + Array [ + Object { + "author": "TonyHawkins", + "createdAt": 2020-01-04T19:34:28.000Z, + "numComments": 68, + "score": 1020, + "title": "I built an iPod Classic using React Hooks & Styled Components", + "url": "https://reddit.com/r/reactjs/comments/ek181n/i_built_an_ipod_classic_using_react_hooks_styled/", + }, + Object { + "author": "ronaldl911", + "createdAt": 2020-09-19T18:41:52.000Z, + "numComments": 90, + "score": 626, + "title": "Dunning Kruger Effect", + "url": "https://reddit.com/r/reactjs/comments/ivy7ic/dunning_kruger_effect/", + }, + Object { + "author": "swyx", + "createdAt": 2020-08-29T18:10:57.000Z, + "numComments": 33, + "score": 249, + "title": "Egghead.io is building the next version of Egghead.io on Next.js and it is open source", + "url": "https://reddit.com/r/reactjs/comments/iix6w3/eggheadio_is_building_the_next_version_of/", + }, + Object { + "author": "grand_web", + "createdAt": 2020-04-11T18:28:17.000Z, + "numComments": 45, + "score": 221, + "title": "Built a virtual quiz app with React & Node to play along with YouTube pub quizzes during the quarantine", + "url": "https://reddit.com/r/reactjs/comments/fzd4fb/built_a_virtual_quiz_app_with_react_node_to_play/", + }, + Object { + "author": "swyx", + "createdAt": 2020-05-09T18:29:19.000Z, + "numComments": 25, + "score": 147, + "title": "Dan Abramov on marketing your OSS - deep in the comments of CRA's issues in 2016", + "url": "https://reddit.com/r/reactjs/comments/ggkrrf/dan_abramov_on_marketing_your_oss_deep_in_the/", + }, + Object { + "author": "A-AronBrown", + "createdAt": 2020-05-30T18:02:32.000Z, + "numComments": 4, + "score": 132, + "title": "Recoiljs TypeScript types have been merged into DefinitelyTyped 🎉", + "url": "https://reddit.com/r/reactjs/comments/gtilmv/recoiljs_typescript_types_have_been_merged_into/", + }, + ], + Array [ + Object { + "author": "rcdexta", + "createdAt": 2020-04-04T19:44:21.000Z, + "numComments": 24, + "score": 198, + "title": "Fully functional Trello board written using React and Redux", + "url": "https://reddit.com/r/reactjs/comments/fuzyui/fully_functional_trello_board_written_using_react/", + }, + ], + Array [ + Object { + "author": "s____s___", + "createdAt": 2019-11-02T21:35:57.000Z, + "numComments": 26, + "score": 571, + "title": "I made a half assed code editor", + "url": "https://reddit.com/r/reactjs/comments/dqqvvo/i_made_a_half_assed_code_editor/", + }, + Object { + "author": "9gagceo", + "createdAt": 2020-08-08T20:05:27.000Z, + "numComments": 70, + "score": 328, + "title": "Introducing Rome: A linter for JavaScript and TypeScript.", + "url": "https://reddit.com/r/reactjs/comments/i65sgd/introducing_rome_a_linter_for_javascript_and/", + }, + Object { + "author": "swyx", + "createdAt": 2020-03-21T21:44:20.000Z, + "numComments": 43, + "score": 233, + "title": "Prettier 2.0", + "url": "https://reddit.com/r/reactjs/comments/fmnfn0/prettier_20/", + }, + Object { + "author": "nandapandatech", + "createdAt": 2019-12-07T21:51:36.000Z, + "numComments": 139, + "score": 180, + "title": "My Complete Salary History as a React Dev - Full Numbers from Intern to Intermediate.", + "url": "https://reddit.com/r/reactjs/comments/e7kj8d/my_complete_salary_history_as_a_react_dev_full/", + }, + Object { + "author": "dance2die", + "createdAt": 2019-11-30T21:14:20.000Z, + "numComments": 68, + "score": 125, + "title": "Rich Harris implements the \\"Round\\" React demo with Svelte making comparison on Twitter", + "url": "https://reddit.com/r/reactjs/comments/e43l6w/rich_harris_implements_the_round_react_demo_with/", + }, + ], + Array [ + Object { + "author": "theanubhav", + "createdAt": 2020-01-11T22:26:25.000Z, + "numComments": 72, + "score": 411, + "title": "overreacted.io -Goodbye, Clean Code - Dan Abramov", + "url": "https://reddit.com/r/reactjs/comments/enee62/overreactedio_goodbye_clean_code_dan_abramov/", + }, + Object { + "author": "dance2die", + "createdAt": 2020-05-30T21:25:38.000Z, + "numComments": 13, + "score": 148, + "title": "Babel 7.10.0 Released: a better React tree-shaking", + "url": "https://reddit.com/r/reactjs/comments/gtm7c3/babel_7100_released_a_better_react_treeshaking/", + }, + Object { + "author": "sunny_lts", + "createdAt": 2019-12-14T22:32:40.000Z, + "numComments": 161, + "score": 146, + "title": "People love to use Redux, I haven't found a use yet.", + "url": "https://reddit.com/r/reactjs/comments/eaqfdr/people_love_to_use_redux_i_havent_found_a_use_yet/", + }, + ], ], ] `; diff --git a/src/page-search/propTypes.js b/src/page-search/propTypes.js index e69de29..d80128e 100644 --- a/src/page-search/propTypes.js +++ b/src/page-search/propTypes.js @@ -0,0 +1,17 @@ +import { + instanceOf, + number, + shape, + string, +} from 'prop-types'; + +const post = shape({ + createdAt: instanceOf(Date).isRequired, + title: string.isRequired, + url: string.isRequired, + score: number.isRequired, + numComments: number.isRequired, + author: string.isRequired, +}); + +export default { post }; diff --git a/src/page-search/useFetchPosts.js b/src/page-search/useFetchPosts.js index aeecb4f..1d94b76 100644 --- a/src/page-search/useFetchPosts.js +++ b/src/page-search/useFetchPosts.js @@ -49,38 +49,51 @@ export async function fetchPaginatedPosts(subreddit, previousPosts = [], after = * dayOfWeek is a number between 0 and 6, hour a number between 0 and 23. * * @param {array} posts the concatenated list of posts returned from fetchPaginatedPosts - * @returns {array} nested 2D array that contains the number of posts grouped by week day and hour + * @returns {array} nested 3D array that contains the posts grouped by week day and hour */ async function groupPostsPerDayAndHour(posts) { - const totalPosts = Array(7) - .fill() - .map(() => Array(24).fill().map(() => [])); + // const totalPosts = Array(7) + // .fill() + // .map(() => Array(24).fill().map(() => [])); const postsPerDay = Array(7) .fill() - .map(() => Array(24).fill().map(() => 0)); + .map(() => Array(24).fill().map(() => [])); posts.forEach((post) => { - const createdAt = new Date(post.data.created_utc * 1000); - const dayOfWeek = createdAt.getDay(); - const hour = createdAt.getHours(); - // - const { - // eslint-disable-next-line camelcase - author, title, num_comments, score, url, - } = post.data; - totalPosts[dayOfWeek][hour].push({ - author, - comments: num_comments, - title, - score, - createdAt, - url, + // const createdAt = new Date(post.data.created_utc * 1000); + // const dayOfWeek = createdAt.getDay(); + // const hour = createdAt.getHours(); + // // + // const { + // // eslint-disable-next-line camelcase + // author, title, num_comments, score, permalink, + // } = post.data; + // totalPosts[dayOfWeek][hour].push({ + // author, + // comments: num_comments, + // title, + // score, + // createdAt, + // permalink, + // }); + // postsPerDay[dayOfWeek][hour] += 1; + + const createdAtDate = new Date(post.data.created_utc * 1000); + const dayOfWeek = createdAtDate.getDay(); + const hour = createdAtDate.getHours(); + + postsPerDay[dayOfWeek][hour].push({ + createdAt: createdAtDate, + title: post.data.title, + url: `https://reddit.com${post.data.permalink}`, + score: post.data.score, + numComments: post.data.num_comments, + author: post.data.author, }); - postsPerDay[dayOfWeek][hour] += 1; }); // return postsPerDay; - return { postsPerDay, totalPosts }; + return { postsPerDay }; } function useFetchPosts(subreddit) { diff --git a/src/page-search/useFetchPosts.test.js b/src/page-search/useFetchPosts.test.js index 58dca8c..5c915e6 100644 --- a/src/page-search/useFetchPosts.test.js +++ b/src/page-search/useFetchPosts.test.js @@ -4,11 +4,13 @@ import useFetchPosts from './useFetchPosts'; const getNumPosts = (nestedPostsArray) => nestedPostsArray.reduce( (numTotal, postsPerDay) => postsPerDay.reduce( - (numPerDay, postsPerHour) => numPerDay + postsPerHour, numTotal, + (numPerDay, postsPerHour) => numPerDay + postsPerHour.length, numTotal, ), 0, ); +// const getPostsPerHout + test('loads 500 posts from the Reddit API', async () => { const { result, waitForNextUpdate } = renderHook(() => useFetchPosts('500-posts')); diff --git a/src/style/theme.js b/src/style/theme.js index 2004157..8750643 100644 --- a/src/style/theme.js +++ b/src/style/theme.js @@ -25,6 +25,9 @@ const theme = { midLight: '#d5d5d5', light: '#fff', primary: '#fdb755', + postsTable: { + link: '#0087ff', + }, heatmap: { dayBackground: '#1e2537', hourBackground: [