feat: ajoute bascule table/timeline dans ListVersions
This commit is contained in:
@@ -8,10 +8,15 @@ import TableHead from '@mui/material/TableHead'
|
|||||||
import TableRow from '@mui/material/TableRow'
|
import TableRow from '@mui/material/TableRow'
|
||||||
import Paper from '@mui/material/Paper'
|
import Paper from '@mui/material/Paper'
|
||||||
import Button from '@mui/material/Button'
|
import Button from '@mui/material/Button'
|
||||||
|
import ToggleButton from '@mui/material/ToggleButton'
|
||||||
|
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'
|
||||||
|
import ViewListIcon from '@mui/icons-material/ViewList'
|
||||||
|
import TimelineIcon from '@mui/icons-material/Timeline'
|
||||||
import {TableVirtuoso} from 'react-virtuoso'
|
import {TableVirtuoso} from 'react-virtuoso'
|
||||||
import {Box, Typography} from '@mui/material'
|
import {Box, Typography} from '@mui/material'
|
||||||
import SessionExpired from '../session/session-expired.js'
|
import SessionExpired from '../session/session-expired.js'
|
||||||
import VersionDialog from './version-dialog.js'
|
import VersionDialog from './version-dialog.js'
|
||||||
|
import VersionTimeline from './version-timeline.js'
|
||||||
import {formatDate} from '@/lib/format.js'
|
import {formatDate} from '@/lib/format.js'
|
||||||
import {compareVersion} from '@/lib/directus.js'
|
import {compareVersion} from '@/lib/directus.js'
|
||||||
|
|
||||||
@@ -110,18 +115,51 @@ export default function ListVersions({
|
|||||||
setIsErrorAlertOpen
|
setIsErrorAlertOpen
|
||||||
}) {
|
}) {
|
||||||
const countdownRef = useRef()
|
const countdownRef = useRef()
|
||||||
|
const [viewMode, setViewMode] = useState('table')
|
||||||
const [isOpenComparison, setIsOpenComparison] = useState(false)
|
const [isOpenComparison, setIsOpenComparison] = useState(false)
|
||||||
const [versionCompare, setVersionCompare] = useState(null)
|
const [versionCompare, setVersionCompare] = useState(null)
|
||||||
|
|
||||||
const versionData = data.find(({id}) => id === versionCompare?.versionId)
|
const versionData = data.find(({id}) => id === versionCompare?.versionId)
|
||||||
|
|
||||||
|
const handleViewModeChange = (event, newViewMode) => {
|
||||||
|
if (newViewMode !== null) {
|
||||||
|
setViewMode(newViewMode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Box>
|
<Box>
|
||||||
<Typography variant='button' textAlign='center' sx={{display: 'block', fontWeight: 'bold'}}>
|
<Box sx={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
mb: 2
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Typography variant='button' sx={{fontWeight: 'bold'}}>
|
||||||
{collection}
|
{collection}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
|
<ToggleButtonGroup
|
||||||
|
exclusive
|
||||||
|
color='primary'
|
||||||
|
size='small'
|
||||||
|
value={viewMode}
|
||||||
|
onChange={handleViewModeChange}
|
||||||
|
>
|
||||||
|
<ToggleButton value='table' aria-label='vue tableau'>
|
||||||
|
<ViewListIcon sx={{mr: 1}} />
|
||||||
|
Table
|
||||||
|
</ToggleButton>
|
||||||
|
<ToggleButton value='timeline' aria-label='vue chronologique'>
|
||||||
|
<TimelineIcon sx={{mr: 1}} />
|
||||||
|
Timeline
|
||||||
|
</ToggleButton>
|
||||||
|
</ToggleButtonGroup>
|
||||||
|
</Box>
|
||||||
|
|
||||||
|
{viewMode === 'table' ? (
|
||||||
<Paper style={{height: 350, width: '100%', marginBlock: 5}}>
|
<Paper style={{height: 350, width: '100%', marginBlock: 5}}>
|
||||||
<TableVirtuoso
|
<TableVirtuoso
|
||||||
data={data}
|
data={data}
|
||||||
@@ -132,7 +170,18 @@ export default function ListVersions({
|
|||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
</Paper>
|
</Paper>
|
||||||
|
) : (
|
||||||
|
<VersionTimeline
|
||||||
|
collection={collection}
|
||||||
|
data={data}
|
||||||
|
accessToken={accessToken}
|
||||||
|
userId={userId}
|
||||||
|
setError={setError}
|
||||||
|
setIsErrorAlertOpen={setIsErrorAlertOpen}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
{isOpenComparison && (
|
{isOpenComparison && (
|
||||||
<VersionDialog versionData={versionData} versionCompare={versionCompare} isOpen={isOpenComparison} setIsOpen={setIsOpenComparison} />
|
<VersionDialog versionData={versionData} versionCompare={versionCompare} isOpen={isOpenComparison} setIsOpen={setIsOpenComparison} />
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user