import React, { FunctionComponent, useState, ChangeEvent, useEffect } from 'react'; import { DecisionSupportFileUpdaterProps } from './DecisionSupportFileUpdaterProps'; import { useDebounce } from '../../hooks/useDebounce'; import { asDate } from '../../util/date'; export interface ClarificationSectionProps extends DecisionSupportFileUpdaterProps {}; const ClarificationSectionName = 'clarification'; export const ClarificationSection: FunctionComponent = ({ dsf, updateDSF, readOnly }) => { const [ state, setState ] = useState({ changed: false, section: { objectives: '', motivations: '', scope: '', nature: '', deadline: undefined, hasDeadline: false, } }); useEffect(() => { if (!state.changed) return; updateDSF({ ...dsf, sections: { ...dsf.sections, [ClarificationSectionName]: { ...state.section }} }) setState(state => ({ ...state, changed: false })); }, [state.changed]); useEffect(() => { if (!dsf.sections[ClarificationSectionName]) return; setState(state => ({ ...state, changed: false, section: {...state.section, ...dsf.sections[ClarificationSectionName] }})); }, [dsf.sections[ClarificationSectionName]]); const onTitleChange = (evt: ChangeEvent) => { const title = (evt.currentTarget).value; updateDSF({ ...dsf, title }); }; const onSectionAttrChange = (attrName: string, evt: ChangeEvent) => { const target = evt.currentTarget; const value = target.hasOwnProperty('checked') ? target.checked : target.value; setState(state => ({ ...state, changed: true, section: {...state.section, [attrName]: value }})); }; const onDeadlineChange = (evt: ChangeEvent) => { const deadline = evt.currentTarget.valueAsDate; setState(state => ({ ...state, changed: true, section: { ...state.section, deadline }})); }; return (

Ne pas essayer de rentrer trop dans les détails ici. Préférer l'utilisation des annexes et y faire référence.

Penser à indiquer si des obligations légales pèsent sur cette prise de décision.

); };