diff --git a/src/components/Consents/Consents.tsx b/src/components/Consents/Consents.tsx index bd77effbf8c5442530d50570ed8dfe258c25101a..7834425cb3897bfbb4e44f861280b24caa5e3638 100644 --- a/src/components/Consents/Consents.tsx +++ b/src/components/Consents/Consents.tsx @@ -17,6 +17,7 @@ import { GridReadyEvent, RowNode, RowSelectedEvent, + ValueFormatterParams, } from 'ag-grid-community' import styles from './consents.module.scss' import './agGridOverrides.scss' @@ -26,6 +27,7 @@ import { ConsentService } from '../../services/consent.service' import { UserContextProps, UserContext } from '../../hooks/userContext' import { IConsent } from '../../models/consent.model' import { getAxiosXSRFHeader } from '../../axios.config' +import { DateTime } from 'luxon' const Consents: React.FC = () => { const [gridApi, setGridApi] = useState<GridApi | null>(null) @@ -53,6 +55,11 @@ const Consents: React.FC = () => { }), [] ) + + const dateFormatter = (data: ValueFormatterParams): string => { + return (data.value as DateTime).toLocaleString() + } + const [columnDefs] = useState<(ColDef | ColGroupDef)[] | null>([ { field: 'ID', @@ -98,6 +105,7 @@ const Consents: React.FC = () => { }, { field: 'startDate', + valueFormatter: dateFormatter, headerName: 'Début du consentement', initialWidth: 150, filter: true, @@ -105,11 +113,13 @@ const Consents: React.FC = () => { }, { field: 'endDate', + valueFormatter: dateFormatter, headerName: 'Fin du consentement', initialWidth: 150, filter: true, }, ]) + const handleChangePage = useCallback( ( _event: React.MouseEvent<HTMLButtonElement, MouseEvent> | null, diff --git a/src/models/consent.model.ts b/src/models/consent.model.ts index d7df0f4753f4508204b947d57ea0ae2b8d32b0b0..7b39599e8d2af9817b90a5423e9fac673bb1f36e 100644 --- a/src/models/consent.model.ts +++ b/src/models/consent.model.ts @@ -1,7 +1,8 @@ +import { DateTime } from 'luxon' export interface IConsent extends Omit<ConsentEntity, 'CreatedAt' | 'endDate' | 'inseeCode'> { - startDate: string - endDate: string + startDate: DateTime + endDate: DateTime } export interface ConsentEntity { diff --git a/src/services/consent.service.ts b/src/services/consent.service.ts index 8e8c4c8dcee83e5cde2e7820fbed3dccf27b28b1..76a253793e65050c17cdd0c8bf0cef3daaf0db61 100644 --- a/src/services/consent.service.ts +++ b/src/services/consent.service.ts @@ -73,16 +73,12 @@ export class ConsentService { * @param consentEntity */ public parseConsent = (consentEntity: ConsentEntity): IConsent => { - const startDate: string = DateTime.fromISO(consentEntity.CreatedAt, { + const startDate: DateTime = DateTime.fromISO(consentEntity.CreatedAt, { zone: 'utc', - }) - .setLocale('fr-FR') - .toLocaleString() - const endDate: string = DateTime.fromISO(consentEntity.endDate, { + }).setLocale('fr-FR') + const endDate: DateTime = DateTime.fromISO(consentEntity.endDate, { zone: 'utc', - }) - .setLocale('fr-FR') - .toLocaleString() + }).setLocale('fr-FR') return { ID: consentEntity.ID,