feat: récupère le total des votes
This commit is contained in:
@@ -24,7 +24,7 @@ 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 {getVersion, compareVersion, getVoteCounts} from '@/lib/directus.js'
|
||||
import {formatDate} from '@/lib/format.js'
|
||||
|
||||
export default function VersionPage({session, versionId, viewMode}) {
|
||||
@@ -39,6 +39,7 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
const [isErrorAlertOpen, setIsErrorAlertOpen] = useState(false)
|
||||
const [snackbar, setSnackbar] = useState({open: false, message: '', severity: 'success'})
|
||||
const [voteRefreshKey, setVoteRefreshKey] = useState(0)
|
||||
const [voteCounts, setVoteCounts] = useState(null)
|
||||
|
||||
useEffect(() => {
|
||||
async function fetchVersionData() {
|
||||
@@ -67,6 +68,13 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
if (comparison) {
|
||||
setVersionCompare({...comparison, versionId})
|
||||
}
|
||||
|
||||
const counts = await getVoteCounts({
|
||||
accessToken,
|
||||
versionId
|
||||
})
|
||||
|
||||
setVoteCounts(counts)
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch version:', error)
|
||||
setError('Impossible de charger cette version')
|
||||
@@ -83,7 +91,7 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
router.push('/dashboard')
|
||||
}
|
||||
|
||||
const handleVoteResult = result => {
|
||||
const handleVoteResult = async result => {
|
||||
setSnackbar({
|
||||
open: true,
|
||||
message: result.message,
|
||||
@@ -91,6 +99,14 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
})
|
||||
// Force refresh of both VoteButtons components by changing the key
|
||||
setVoteRefreshKey(prev => prev + 1)
|
||||
|
||||
if (result.success) {
|
||||
const counts = await getVoteCounts({
|
||||
accessToken,
|
||||
versionId
|
||||
})
|
||||
setVoteCounts(counts)
|
||||
}
|
||||
}
|
||||
|
||||
const handleCloseSnackbar = () => {
|
||||
@@ -222,8 +238,8 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
</Button>
|
||||
|
||||
<Box sx={{display: 'flex', alignItems: 'center', gap: 2}}>
|
||||
<ExportPdfButton versionData={versionData} size='medium' />
|
||||
<PrintButton versionData={versionData} size='medium' />
|
||||
<ExportPdfButton versionData={versionData} isOutdated={versionCompare?.outdated} voteCounts={voteCounts} size='medium' />
|
||||
<PrintButton versionData={versionData} isOutdated={versionCompare?.outdated} voteCounts={voteCounts} size='medium' />
|
||||
<Tooltip title='Partager cette version'>
|
||||
<IconButton color='primary' onClick={handleShare}>
|
||||
<ShareIcon />
|
||||
|
||||
Reference in New Issue
Block a user