import { Box, Heading, SimpleGrid, Image, Text, VStack, HStack, Button, Skeleton, Badge, useColorModeValue } from '@chakra-ui/react'; import { useQuery } from '@tanstack/react-query'; import { getArticles, Article } from '../../services/articles'; import { Link as RouterLink } from 'react-router-dom'; import { assetUrl } from '../../utils/url'; import InstagramGeneratorButton from '../admin/InstagramGeneratorButton'; const BlogCard: React.FC<{ article: Article }> = ({ article }) => { const link = article.slug ? `/news/${article.slug}` : `/articles/${article.id}`; const cardBg = useColorModeValue('white', 'gray.800'); const border = useColorModeValue('gray.200', 'whiteAlpha.300'); const categoryName = (article as any)?.category?.name || ''; return ( {article.title} {categoryName && ( {categoryName} )} {article.title} {article.content?.replace(/<[^>]*>/g, '').slice(0, 160)} {article.estimated_read_minutes && ( {article.estimated_read_minutes} min čtení )} {article.published_at && ( • {new Date(article.published_at).toLocaleDateString('cs-CZ')} )} ); }; const BlogGrid: React.FC = () => { const { data, isLoading } = useQuery({ queryKey: ['articles', { page: 1, page_size: 10, published: true }], queryFn: () => getArticles({ page: 1, page_size: 10, published: true }), }); const articles = data?.data || []; return ( Aktuality {isLoading && Array.from({ length: 6 }).map((_, i) => ( ))} {!isLoading && articles.map((a) => ( ))} ); }; export default BlogGrid;