fix: ferme les votes sur les versions obsolètes dans PDF/Print

This commit is contained in:
2026-01-04 13:06:30 +04:00
parent e101f503d2
commit 2701957af8
5 changed files with 105 additions and 60 deletions
+44 -3
View File
@@ -1,4 +1,4 @@
import {forwardRef, useRef, useState} from 'react'
import {forwardRef, useRef, useState, useEffect} from 'react'
import PropTypes from 'prop-types'
import Table from '@mui/material/Table'
import TableBody from '@mui/material/TableBody'
@@ -84,7 +84,8 @@ function rowContent({
setError,
setIsErrorAlertOpen,
setIsOpenComparison,
setVersionCompare
setVersionCompare,
outdatedStatusMap
}) {
const handleButtonClick = async versionId => {
const version = await compareVersion({
@@ -102,6 +103,8 @@ function rowContent({
}
}
const isOutdated = outdatedStatusMap[row.id] || false
return (
<>
{columns.map(column => (
@@ -137,11 +140,13 @@ function rowContent({
/>
<ExportPdfButton
versionData={row}
isOutdated={isOutdated}
size='small'
variant='text'
/>
<PrintButton
versionData={row}
isOutdated={isOutdated}
size='small'
variant='text'
/>
@@ -182,6 +187,42 @@ export default function ListVersions({
dateTo: '',
status: ''
})
const [outdatedStatusMap, setOutdatedStatusMap] = useState({})
// Fetch outdated status for all versions
useEffect(() => {
async function fetchOutdatedStatus() {
const statusMap = {}
await Promise.all(
data.map(async version => {
try {
const comparisonData = await compareVersion({
accessToken,
userId,
versionId: version.id,
countdownRef,
setError,
setIsErrorAlertOpen
})
if (comparisonData) {
statusMap[version.id] = comparisonData.outdated || false
}
} catch (error) {
console.warn(`Failed to fetch outdated status for version ${version.id}:`, error)
statusMap[version.id] = false
}
})
)
setOutdatedStatusMap(statusMap)
}
if (data.length > 0) {
fetchOutdatedStatus()
}
}, [data, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen])
// Filter data based on search and filters
const filteredData = filterVersions(data, searchTerm, filters)
@@ -261,7 +302,7 @@ export default function ListVersions({
components={VirtuosoTableComponents}
fixedHeaderContent={fixedHeaderContent}
itemContent={(index, row) => rowContent({
index, row, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen, setIsOpenComparison, setVersionCompare
index, row, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen, setIsOpenComparison, setVersionCompare, outdatedStatusMap
})}
/>
</Paper>