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 (
{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;