diff --git a/src/components/periods/PeriodTypeSelect.js b/src/components/periods/PeriodTypeSelect.js index 98917ca65..3c04c6e98 100644 --- a/src/components/periods/PeriodTypeSelect.js +++ b/src/components/periods/PeriodTypeSelect.js @@ -1,22 +1,19 @@ import i18n from '@dhis2/d2-i18n' import PropTypes from 'prop-types' -import React, { Component } from 'react' +import React, { useEffect } from 'react' import { RELATIVE_PERIODS } from '../../constants/periods.js' import { getPeriodTypes, getRelativePeriods } from '../../util/periods.js' import { SelectField } from '../core/index.js' -class PeriodTypeSelect extends Component { - static propTypes = { - onChange: PropTypes.func.isRequired, - className: PropTypes.string, - errorText: PropTypes.string, - hiddenPeriods: PropTypes.array, - period: PropTypes.object, - value: PropTypes.string, - } - - componentDidMount() { - const { value, period, onChange } = this.props +const PeriodTypeSelect = ({ + onChange, + className, + errorText, + hiddenPeriods, + period, + value, +}) => { + useEffect(() => { const relativePeriodType = { id: RELATIVE_PERIODS, name: i18n.t('Relative'), @@ -31,24 +28,28 @@ class PeriodTypeSelect extends Component { // set relativePeriods as default onChange(relativePeriodType) } - } + }, [value, period, onChange]) - render() { - const { value, hiddenPeriods, onChange, className, errorText } = - this.props + return ( + + ) +} - return ( - - ) - } +PeriodTypeSelect.propTypes = { + onChange: PropTypes.func.isRequired, + className: PropTypes.string, + errorText: PropTypes.string, + hiddenPeriods: PropTypes.array, + period: PropTypes.object, + value: PropTypes.string, } export default PeriodTypeSelect