diff --git a/src/blog/components/MainContent.tsx b/src/blog/components/MainContent.tsx index e068517..288e797 100644 --- a/src/blog/components/MainContent.tsx +++ b/src/blog/components/MainContent.tsx @@ -37,12 +37,12 @@ export default function MainContent({ articles, onSelectArticle, }: { - articles: any[]; + articles: ArticleModel[]; onSelectArticle: (index: number) => void; }) { const [visibleArticles, setVisibleArticles] = React.useState(articles); - const [activeTag, setActiveTag] = React.useState(null); + const [activeTag, setActiveTag] = React.useState('all'); const filterArticlesByTag = (tag: string) => { if (tag === 'all') { @@ -75,11 +75,9 @@ export default function MainContent({ return ( -
- - Blog - -
+ + Blog + - handleTagClick('all')} - size="medium" - label="All categories" - color={activeTag === 'all' ? 'primary' : 'default'} - variant={activeTag === 'all' ? 'filled' : 'outlined'} - sx={{ - borderRadius: '8px', - fontWeight: activeTag === 'all' ? 600 : 400, - }} - /> - handleTagClick('infra')} - size="medium" - label="Infra" - color={activeTag === 'infra' ? 'primary' : 'default'} - variant={activeTag === 'infra' ? 'filled' : 'outlined'} - sx={{ - borderRadius: '8px', - fontWeight: activeTag === 'infra' ? 600 : 400, - }} - /> - handleTagClick('code')} - size="medium" - label="Code" - color={activeTag === 'code' ? 'primary' : 'default'} - variant={activeTag === 'code' ? 'filled' : 'outlined'} - sx={{ - borderRadius: '8px', - fontWeight: activeTag === 'code' ? 600 : 400, - }} - /> - handleTagClick('media')} - size="medium" - label="Media" - color={activeTag === 'media' ? 'primary' : 'default'} - variant={activeTag === 'media' ? 'filled' : 'outlined'} - sx={{ - borderRadius: '8px', - fontWeight: activeTag === 'media' ? 600 : 400, - }} - /> - handleTagClick('monitoring')} - size="medium" - label="Monitoring" - color={activeTag === 'monitoring' ? 'primary' : 'default'} - variant={activeTag === 'monitoring' ? 'filled' : 'outlined'} - sx={{ - borderRadius: '8px', - fontWeight: activeTag === 'all' ? 600 : 400, - }} - /> + {['all', 'infra', 'code', 'media', 'monitoring'].map((tag) => ( + handleTagClick(tag)} + size="medium" + label={tag === 'all' ? 'All categories' : tag.charAt(0).toUpperCase() + tag.slice(1)} + color={activeTag === tag ? 'primary' : 'default'} + variant={activeTag === tag ? 'filled' : 'outlined'} + sx={{ + borderRadius: '8px', + fontWeight: activeTag === tag ? 600 : 400, + textTransform: 'capitalize', + }} + /> + ))}