diff --git a/components/versions/list-versions.js b/components/versions/list-versions.js index 145b6de..d7c53f1 100644 --- a/components/versions/list-versions.js +++ b/components/versions/list-versions.js @@ -22,6 +22,7 @@ import VersionFilters from './version-filters.js' import CopyButton from './copy-button.js' import ShareButton from './share-button.js' import ExportPdfButton from './export-pdf-button.js' +import PrintButton from './print-button.js' import {formatDate} from '@/lib/format.js' import {compareVersion} from '@/lib/directus.js' import {filterVersions, getFilterStats} from '@/lib/version-utils.js' @@ -128,6 +129,11 @@ function rowContent({ size='small' variant='text' /> + + + + +
+

${versionData.name}

+ + + +
+ +
+

Contenu

+
+ ${renderedContent} +
+
+ + + + + ` + + printWindow.document.write(printHtml) + printWindow.document.close() + + // Auto-focus the print window + printWindow.focus() + + setSnackbar({ + open: true, + message: 'Fenêtre d\'impression ouverte', + severity: 'success' + }) + } catch (error) { + console.error('Erreur lors de l\'impression:', error) + setSnackbar({ + open: true, + message: error.message || 'Une erreur est survenue lors de l\'impression', + severity: 'error' + }) + } finally { + setIsPrinting(false) + } + } + + const handleCloseSnackbar = () => { + setSnackbar(prev => ({...prev, open: false})) + } + + return ( + <> + + + + + {snackbar.message} + + + + ) +} + +PrintButton.propTypes = { + versionData: PropTypes.object.isRequired, + size: PropTypes.oneOf(['small', 'medium', 'large']), + variant: PropTypes.oneOf(['text', 'outlined', 'contained']) +} diff --git a/components/versions/version-page.js b/components/versions/version-page.js index dc05981..9872951 100644 --- a/components/versions/version-page.js +++ b/components/versions/version-page.js @@ -22,6 +22,7 @@ import Footer from '../footer.js' import VoteButtons from './vote-buttons.js' import CopyButton from './copy-button.js' import ExportPdfButton from './export-pdf-button.js' +import PrintButton from './print-button.js' import VersionComparison from './version-comparison.js' import {getVersion, compareVersion} from '@/lib/directus.js' import {formatDate} from '@/lib/format.js' @@ -224,6 +225,7 @@ export default function VersionPage({session, versionId, viewMode}) { + diff --git a/components/versions/version-timeline.js b/components/versions/version-timeline.js index 7c272a9..d290215 100644 --- a/components/versions/version-timeline.js +++ b/components/versions/version-timeline.js @@ -28,6 +28,7 @@ import VoteButtons from './vote-buttons.js' import CopyButton from './copy-button.js' import ShareButton from './share-button.js' import ExportPdfButton from './export-pdf-button.js' +import PrintButton from './print-button.js' import {formatDate} from '@/lib/format.js' import {compareVersion} from '@/lib/directus.js' @@ -219,6 +220,11 @@ function VersionCard({ size='small' variant='text' /> +