import React, { useMemo } from 'react'; import styled from 'styled-components'; import ArticlePreview from '../preview'; import { JumboArticlePreview } from '../preview/jumbo'; import { MiniArticlePreview } from '../preview/mini'; import { Article } from 'types'; type Props = { articles: Article[]; }; const Wrapper = styled.div` width: 100%; `; const FeaturedArticle = styled.div` display: flex; flex-wrap: wrap; margin: 0 auto; align-items: center; justify-content: center; width: 100%; `; const FeaturedArticles = styled.div` display: flex; flex-direction: row; margin: 0 auto; width: 100%; flex-wrap: wrap; `; const RemainingArticles = styled.div` display: flex; flex-direction: row; flex-wrap: wrap; margin: 0 auto; width: 100%; `; const ArticleGrid: React.FC = ({ articles }) => { const sorted = useMemo( () => articles, // TODO: // articles.sort( // (a, b) => // new Date(b.published).getTime() - // new Date(a.published).getTime() // ), [articles], ); const featured1 = useMemo(() => sorted.slice(0, 1)[0], [sorted]); const featured2 = useMemo(() => sorted.slice(1, 4), [sorted]); const remaining = useMemo(() => sorted.slice(4, 12), [sorted]); return ( {featured2.map((article) => ( ))} {remaining.map((article) => ( ))} ); }; export { ArticleGrid };