From 08c20c2613bf7a9aaadc2cf9770c1c8cf9604c15 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Wed, 12 Nov 2025 04:50:47 +0530 Subject: [PATCH] moved out ArticleCards grid --- .../components/ArticleCards/ArticleCards.tsx | 96 +++++++++++++++++++ src/blog/components/MainContent.tsx | 84 +--------------- 2 files changed, 101 insertions(+), 79 deletions(-) create mode 100644 src/blog/components/ArticleCards/ArticleCards.tsx diff --git a/src/blog/components/ArticleCards/ArticleCards.tsx b/src/blog/components/ArticleCards/ArticleCards.tsx new file mode 100644 index 0000000..59f364f --- /dev/null +++ b/src/blog/components/ArticleCards/ArticleCards.tsx @@ -0,0 +1,96 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Grid from '@mui/material/Grid'; + +import { ArticleModel } from "../../types/models"; +import ArticleCardSize6 from "../ArticleCards/ArticleCardSize6"; +import ArticleCardSize4 from "../ArticleCards/ArticleCardSize4"; +import ArticleCardSize2 from "../ArticleCards/ArticleCardSize2"; + + +export default function ArticleCards({ + articles, + onSelectArticle, +}: { + articles: any[]; + onSelectArticle: (index: number) => void; +}) { + const [focusedCardIndex, setFocusedCardIndex] = React.useState( + null, + ); + + const handleFocus = (index: number) => { + setFocusedCardIndex(index); + }; + + const handleBlur = () => { + setFocusedCardIndex(null); + }; + + return ( + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/src/blog/components/MainContent.tsx b/src/blog/components/MainContent.tsx index 13adccf..e87bde2 100644 --- a/src/blog/components/MainContent.tsx +++ b/src/blog/components/MainContent.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import Box from '@mui/material/Box'; import Chip from '@mui/material/Chip'; -import Grid from '@mui/material/Grid'; import IconButton from '@mui/material/IconButton'; import Typography from '@mui/material/Typography'; import FormControl from '@mui/material/FormControl'; @@ -11,9 +10,7 @@ import SearchRoundedIcon from '@mui/icons-material/SearchRounded'; import RssFeedRoundedIcon from '@mui/icons-material/RssFeedRounded'; import { ArticleModel } from "../types/models"; -import ArticleCardSize6 from "./ArticleCards/ArticleCardSize6"; -import ArticleCardSize4 from "./ArticleCards/ArticleCardSize4"; -import ArticleCardSize2 from "./ArticleCards/ArticleCardSize2"; +import ArticleCards from "./ArticleCards/ArticleCards"; export function Search() { return ( @@ -43,9 +40,6 @@ export default function MainContent({ articles: any[]; onSelectArticle: (index: number) => void; }) { - const [focusedCardIndex, setFocusedCardIndex] = React.useState( - null, - ); const [visibleArticles, setVisibleArticles] = React.useState(articles); const [activeTag, setActiveTag] = React.useState(null); @@ -74,14 +68,6 @@ export default function MainContent({ setActiveTag(tag); }; - const handleFocus = (index: number) => { - setFocusedCardIndex(index); - }; - - const handleBlur = () => { - setFocusedCardIndex(null); - }; - const handleTagClick = (tag: string) => { setActiveTag((prev) => (prev === tag ? 'all' : tag)); filterArticlesByTag(tag) @@ -198,70 +184,10 @@ export default function MainContent({ - - - - - - - - - - - - - - - - - - - - + ); }