From 870f07669e493e78c15e394246c3b44db90c644b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Wed, 23 Jul 2025 18:21:34 +0400 Subject: [PATCH] refactor: utilise VoteButtons dans VersionComparison --- components/versions/version-comparison.js | 78 ++++------------------- 1 file changed, 11 insertions(+), 67 deletions(-) diff --git a/components/versions/version-comparison.js b/components/versions/version-comparison.js index 1d7b518..2699008 100644 --- a/components/versions/version-comparison.js +++ b/components/versions/version-comparison.js @@ -3,63 +3,23 @@ import Typography from '@mui/material/Typography' import Paper from '@mui/material/Paper' import Grid from '@mui/material/Grid2' import PropTypes from 'prop-types' -import IconButton from '@mui/material/IconButton' -import ThumbUpIcon from '@mui/icons-material/ThumbUp' -import ThumbDownIcon from '@mui/icons-material/ThumbDown' -import {useState, useEffect} from 'react' -import {useSession} from 'next-auth/react' import Snackbar from '@mui/material/Snackbar' import Alert from '@mui/material/Alert' +import {useState} from 'react' import MarkdownRenderer from '../markdown-renderer/index.js' -import {handleVote, getUserVote} from '../../lib/directus.js' +import VoteButtons from './vote-buttons.js' import {formatDate} from '@/lib/format.js' export default function VersionComparison({versionData, versionCompare}) { const {current, main, outdated} = versionCompare - const {data: session} = useSession() const [snackbar, setSnackbar] = useState({open: false, message: '', severity: 'success'}) - const [currentVote, setCurrentVote] = useState(null) - useEffect(() => { - const fetchVote = async () => { - if (session?.user && versionCompare.versionId) { - try { - const vote = await getUserVote({ - accessToken: session.user.accessToken, - userId: session.user.userId, - versionId: versionCompare.versionId - }) - setCurrentVote(vote) - } catch (error) { - console.error('Error fetching vote:', error) - } - } - } - - fetchVote() - }, [session, versionCompare.versionId]) - - const handleVoteClick = async voteValue => { - try { - const newVoteValue = await handleVote({ - accessToken: session.user.accessToken, - userId: session.user.userId, - versionId: versionCompare.versionId, - voteValue - }) - setCurrentVote(newVoteValue) - setSnackbar({ - open: true, - message: newVoteValue === null ? 'Vote annulé' : 'Vote enregistré avec succès', - severity: 'success' - }) - } catch (error) { - setSnackbar({ - open: true, - message: `Erreur lors du vote: ${error}`, - severity: 'error' - }) - } + const handleVoteResult = result => { + setSnackbar({ + open: true, + message: result.message, + severity: result.success ? 'success' : 'error' + }) } const handleCloseSnackbar = () => { @@ -131,7 +91,7 @@ export default function VersionComparison({versionData, versionCompare}) { @{versionData.user_created?.split('-')[0] || 'Système'} - {!outdated && session?.user && ( + {!outdated && ( )} - - handleVoteClick(1)} - > - - - handleVoteClick(-1)} - > - - - + )} @@ -219,6 +162,7 @@ export default function VersionComparison({versionData, versionCompare}) { +