From da8ee5078e306a16e9d657a70e2a1dcc19dc69b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anne=20L=27H=C3=B4te?= Date: Mon, 16 Dec 2024 12:42:38 +0100 Subject: [PATCH] fix(studio): Dynamically generate range of years --- .env.development | 2 +- src/components/Studio/index.js | 78 +++++++++++++++++----------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/.env.development b/.env.development index 552065cd..c337939d 100644 --- a/.env.development +++ b/.env.development @@ -4,5 +4,5 @@ ES_INDEX_PUBLICATIONS=bso-publications-staging ES_INDEX_STUDIES=bso-clinical-trials-staging REACT_APP_ENV=development REACT_APP_ES_API_SOURCES_STUDIES=["clinical_trials", "ctis", "euctr"] -REACT_APP_LAST_OBSERVATION=2024Q3 +REACT_APP_LAST_OBSERVATION=2024Q4 REACT_APP_PIWIK_SITE=44 \ No newline at end of file diff --git a/src/components/Studio/index.js b/src/components/Studio/index.js index 751c2746..a4f23cb0 100644 --- a/src/components/Studio/index.js +++ b/src/components/Studio/index.js @@ -26,24 +26,43 @@ const Studio = () => { const [displayComment, setDisplayComment] = useState(true); const [displayFooter, setDisplayFooter] = useState(true); const [displayTitle, setDisplayTitle] = useState(false); - const [endYear, setEndYear] = useState('2022'); - const [firstObservationYear, setFirstObservationYear] = useState('2018'); + const [endYear, setEndYear] = useState(); const [lang, setLang] = useState('fr'); - const [lastObservationYear, setLastObservationYear] = useState(); const [object, setObject] = useState('publi'); + const [observationYearFirst, setObservationYearFirst] = useState('2018'); + const [observationYearLast, setObservationYearLast] = useState(); + const [observationYears, setObservationYears] = useState([]); + const [publicationYears, setPublicationYears] = useState([]); const [startYear, setStartYear] = useState('2013'); const [tab, setTab] = useState('general'); const [useHalId, setUseHalId] = useState(false); useEffect(() => { - setLastObservationYear( - getObservationLabel( - lastObservationSnap > process.env.REACT_APP_LAST_OBSERVATION - ? process.env.REACT_APP_LAST_OBSERVATION - : lastObservationSnap, - ), + const lastObservationYearTmp = getObservationLabel( + lastObservationSnap > process.env.REACT_APP_LAST_OBSERVATION + ? process.env.REACT_APP_LAST_OBSERVATION + : lastObservationSnap, ); - }, [lastObservationSnap]); + setObservationYearLast(lastObservationYearTmp); + setEndYear(lastObservationYearTmp - 1); + const observationYearsTmp = [ + ...Array( + Number(lastObservationYearTmp) - Number(observationYearFirst) + 1, + ).keys(), + ].map((item) => ({ + label: item + Number(observationYearFirst), + value: item + Number(observationYearFirst), + })); + observationYearsTmp.push({ label: 'La plus récente', value: 'latest' }); + setObservationYears(observationYearsTmp); + const publicationYearsTmp = [ + ...Array(Number(lastObservationYearTmp) - Number(startYear)).keys(), + ].map((item) => ({ + label: item + Number(startYear), + value: item + Number(startYear), + })); + setPublicationYears(publicationYearsTmp); + }, [observationYearFirst, lastObservationSnap, startYear]); const commentsName = intl.formatMessage({ id: 'app.french', @@ -53,29 +72,10 @@ const Studio = () => { { label: 'Français', value: 'fr' }, { label: 'Anglais', value: 'en' }, ]; - const observationYears = ['2018', '2019', '2020', '2021', '2022', '2023'].map( - (item) => ({ - label: item, - value: item, - }), - ); - observationYears.push({ label: 'La plus récente', value: 'latest' }); - const publicationYears = [ - '2013', - '2014', - '2015', - '2016', - '2017', - '2018', - '2019', - '2020', - '2021', - '2022', - ].map((item) => ({ label: item, value: item })); const values = { archiveTitle: '', commentsName, - observationYear: lastObservationYear, + observationYear: observationYearLast, publicationYear: endYear, publisherTitle: '', }; @@ -117,7 +117,7 @@ const Studio = () => { const getGraphUrl = (graphId = null) => `${window.location.origin}/integration/${lang}/${ graphId || graph - }?bsoLocalAffiliation=${bsoLocalAffiliation}&displayComment=${displayComment}&displayTitle=${displayTitle}&displayFooter=${displayFooter}&endYear=${endYear}&lastObservationYear=${lastObservationYear}&startYear=${startYear}&firstObservationYear=${firstObservationYear}&useHalId=${useHalId}`; + }?bsoLocalAffiliation=${bsoLocalAffiliation}&displayComment=${displayComment}&displayTitle=${displayTitle}&displayFooter=${displayFooter}&endYear=${endYear}&lastObservationYear=${observationYearLast}&startYear=${startYear}&firstObservationYear=${observationYearFirst}&useHalId=${useHalId}`; const getIframeSnippet = (graphId = null) => (