MarkdownPreviewModal
Modal que renderiza una cadena markdown en HTML formateado usando react-markdown con el plugin remark-gfm. Útil para mostrar documentación, descripciones o contenido de texto enriquecido obtenido como markdown.
Props
| Prop | Tipo | Requerido | Por defecto | Descripción |
|------|------|-----------|-------------|-------------|
| isOpen | boolean | Sí | — | Controla si el modal está visible. |
| onClose | () => void | Sí | — | Se llama cuando el modal se cierra. |
| title | string | Sí | — | Título del modal (actualmente no se renderiza en el área de contenido). |
| markdownContent | string | Sí | — | La cadena markdown en bruto a renderizar. |
| subtitle | string | No | — | Subtítulo del modal. |
| backdropStyle | React.CSSProperties | No | — | Estilos en línea para el backdrop del modal. |
| windowStyle | React.CSSProperties | No | — | Estilos en línea fusionados en la ventana del modal. |
| closeButtonStyle | React.CSSProperties | No | — | Estilos para el botón de cierre. |
| closeIcon | string | No | — | Nombre del ícono del botón de cierre. |
| closeIconPaths | any[] | No | — | Rutas de ícono personalizadas para el botón de cierre. |
| closeIconSize | number | No | — | Tamaño del ícono del botón de cierre. |
| zIndex | number | No | 99999 | z-index CSS del overlay del modal. |
| id | string | No | — | id HTML del elemento modal. |
| fullScreen | boolean | No | — | Cuando es true, el modal ocupa toda la pantalla. |
Uso
Básico
import React from 'react';
import MarkdownPreviewModal from '@/components/modals/MarkdownPreviewModal';
const content = `
# Hello World
This is a **markdown** preview with [GFM](https://github.github.com/gfm/) support.
- Item one
- Item two
`;
export default function Example() {
const [open, setOpen] = React.useState(false);
return (
<>
<button onClick={() => setOpen(true)}>Preview</button>
<MarkdownPreviewModal
isOpen={open}
onClose={() => setOpen(false)}
title="Documentation Preview"
markdownContent={content}
/>
</>
);
}