From e1c46f53b95b8169430ed590b3b1786ec32c87bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sun, 15 Sep 2024 18:02:57 +0400 Subject: [PATCH] Create GetVersions component --- components/versions/get-versions.js | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 components/versions/get-versions.js diff --git a/components/versions/get-versions.js b/components/versions/get-versions.js new file mode 100644 index 0000000..da08d45 --- /dev/null +++ b/components/versions/get-versions.js @@ -0,0 +1,108 @@ +'use client' + +import {useState, useRef, useEffect} from 'react' +import PropTypes from 'prop-types' +import Grid from '@mui/material/Grid2' +import Typography from '@mui/material/Typography' +import Box from '@mui/material/Box' +import AuthAlert from '../auth-form/auth-alert.js' +import LogoutCountdown from '../session/logout-countdown.js' +import {Loading} from '../loading.js' +import ListVersions from './list-versions.js' +import {listVersions} from '@/lib/directus.js' + +export default function GetVersions({session}) { + const {accessToken, userId} = session.user + + const [versions, setVersions] = useState(null) + const [isErrorAlertOpen, setIsErrorAlertOpen] = useState(false) + const [error, setError] = useState('') + const countdownRef = useRef() + + useEffect(() => { + async function fetchVersions() { + const data = await listVersions({ + accessToken, userId, countdownRef, setError, setIsErrorAlertOpen + }) + setVersions(data) + } + + fetchVersions() + }, [accessToken, userId]) + + if (!versions) { + return ( + <> + {error && } + + + + ) + } + + const titres = versions?.filter(({collection}) => collection === 'titres') + const articles = versions?.filter(({collection}) => collection === 'articles') + + return ( + <> + {error && } + + + + + Liste des versions + + + 0 && articles.length === 0) || (articles.length > 0 && titres.length === 0) + ? 'center' + : 'flex-start' + } + > + {titres.length > 0 && ( + 0 ? 6 : 12}}> + + + )} + + {articles.length > 0 && ( + 0 ? 6 : 12}}> + + + )} + + + + + ) +} + +GetVersions.propTypes = { + session: PropTypes.object.isRequired +}