diff --git a/src/components/Consents/Consents.tsx b/src/components/Consents/Consents.tsx index e2cd8fbfb45e1d7307cbd52d58ccdbcc17a08bb6..41887dc4186a1351c95ac327245db31e0a0e6d84 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 188960e5307e9f2a86ea466bf3ef69cfb4e85e98..a7f5120678bd9646baa67ef418805f8a144414d4 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;