fix: ferme les votes sur les versions obsolètes dans PDF/Print
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user