|
import React from 'react'; |
|
import { Box, IconButton } from '@mui/material'; |
|
import ContentCopyIcon from '@mui/icons-material/ContentCopy'; |
|
|
|
const CodeBlock = ({ code }) => ( |
|
<Box sx={{ position: 'relative' }}> |
|
<IconButton |
|
onClick={() => navigator.clipboard.writeText(code)} |
|
sx={{ |
|
position: 'absolute', |
|
top: 8, |
|
right: 8, |
|
color: 'grey.500', |
|
'&:hover': { color: 'grey.300' }, |
|
}} |
|
> |
|
<ContentCopyIcon fontSize="small" /> |
|
</IconButton> |
|
<Box |
|
sx={{ |
|
backgroundColor: 'grey.900', |
|
color: 'grey.100', |
|
p: 2, |
|
borderRadius: 1, |
|
fontFamily: 'monospace', |
|
fontSize: '0.875rem', |
|
overflowX: 'auto', |
|
textAlign: 'left', |
|
whiteSpace: 'pre', |
|
}} |
|
> |
|
{code} |
|
</Box> |
|
</Box> |
|
); |
|
|
|
export default CodeBlock; |