From 4b1019f528aae43e0db0e53e519c55ab1ea2f095 Mon Sep 17 00:00:00 2001 From: Pierre Ecarlat <pecarlat@grandlyon.com> Date: Wed, 12 Feb 2025 14:46:33 +0000 Subject: [PATCH] feat: Add exportAll button --- src/components/Consents/Consents.tsx | 43 +++++++++++++++----- src/components/Consents/consents.module.scss | 6 +++ 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/components/Consents/Consents.tsx b/src/components/Consents/Consents.tsx index e2cd8fbf..41887dc4 100644 --- a/src/components/Consents/Consents.tsx +++ b/src/components/Consents/Consents.tsx @@ -166,6 +166,26 @@ export const Consents: React.FC<{ type: 'sge' | 'grdf' }> = ({ type }) => { resetSelection() }, [gridApi, resetSelection]) + const exportAllData = useCallback(() => { + const fetchAllData = async () => { + setIsLoading(true) + if (user) { + const allConsents = await consentService.searchConsents( + '', + totalRows, + 0, + getAxiosXSRFHeader(user.xsrftoken) + ) + if (allConsents) { + setConsents(allConsents.rows) + toggleOpenModal() + } + } + setIsLoading(false) + } + fetchAllData() + }, [user, totalRows, consentService, toggleOpenModal]) + const onGridReady = ({ api }: GridReadyEvent) => { //Grid init method setGridApi(api) @@ -196,16 +216,19 @@ export const Consents: React.FC<{ type: 'sge' | 'grdf' }> = ({ type }) => { <h1>Consentements {isGRDF ? 'GRDF' : 'Enedis'}</h1> </div> <div className={styles.content}> - <TextField - placeholder={`N°${isGRDF ? 'PCE' : 'PDL'} (14 chiffres)`} - label="Recherche" - value={search} - onChange={(e: React.ChangeEvent<HTMLInputElement>) => - handleSearchChange(e.target.value) - } - disabled={isShowingSelection} - autoComplete="off" - /> + <div className={styles.inlineButtons}> + <TextField + placeholder={`N°${isGRDF ? 'PCE' : 'PDL'} (14 chiffres)`} + label="Recherche" + value={search} + onChange={(e: React.ChangeEvent<HTMLInputElement>) => + handleSearchChange(e.target.value) + } + disabled={isShowingSelection} + autoComplete="off" + /> + <Button onClick={exportAllData}>Tout télécharger</Button> + </div> <div className="ag-theme-alpine-dark" style={{ width: '100%', height: '75vh' }} diff --git a/src/components/Consents/consents.module.scss b/src/components/Consents/consents.module.scss index 188960e5..a7f51206 100644 --- a/src/components/Consents/consents.module.scss +++ b/src/components/Consents/consents.module.scss @@ -6,6 +6,12 @@ padding: 1rem; } +.inlineButtons { + display: flex; + justify-content: space-between; + align-items: center; +} + .footerButtons { padding: 1rem 0; display: flex; -- GitLab