import React, { useRef, useCallback } from 'react'; import { Box, IconButton } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import { exportTableToCSV } from './utils'; import MyIcon from '../Icon'; type MarkdownTableProps = { children: React.ReactNode; }; /** * Custom table component for Markdown with CSV export functionality */ const MarkdownTable = ({ children }: MarkdownTableProps) => { const { t } = useTranslation(); const tableRef = useRef(null); const handleExport = useCallback(() => { if (tableRef.current) { const timestamp = new Date().toISOString().slice(0, 19).replace(/:/g, '-'); exportTableToCSV(tableRef.current, `table-${timestamp}`); } }, []); return ( } size={'xs'} display="none" variant={'whiteBase'} onClick={handleExport} position="absolute" top={1} right={2} zIndex={1} aria-label={''} /> {children} ); }; export default React.memo(MarkdownTable);