import React, { useEffect, useState, useCallback } from 'react';
import PropTypes from 'prop-types';
import {
Form,
FormGroup,
Radio,
TextInput,
ValidatedOptions,
Divider,
} from '@patternfly/react-core';
import { ExclamationCircleIcon } from '@patternfly/react-icons';
import { translate as __ } from 'foremanReact/common/I18n';
import { RepeatOn } from './RepeatOn';
import { SCHEDULE_TYPES } from '../../JobWizardConstants';
import { PurposeField } from './PurposeField';
import { DateTimePicker } from '../form/DateTimePicker';
import { WizardTitle } from '../form/WizardTitle';
export const ScheduleRecurring = ({
scheduleValue,
setScheduleValue,
setValid,
}) => {
const {
repeatType,
repeatAmount,
repeatData,
startsAt,
startsBefore,
ends,
isNeverEnds,
isFuture,
purpose,
} = scheduleValue;
const [validEnd, setValidEnd] = useState(true);
const [repeatValidated, setRepeatValidated] = useState('default');
const handleRepeatInputChange = newValue => {
if (!newValue.length) newValue = 0;
setRepeatValidated(
!newValue || parseInt(newValue, 10) >= 1 ? 'default' : 'error'
);
setScheduleValue(current => ({
...current,
repeatAmount: newValue,
}));
};
const [repeatValid, setRepeatValid] = useState(true);
const wrappedSetValid = useCallback(setValid, []);
useEffect(() => {
if (isNeverEnds) setValidEnd(true);
else if (!ends) setValidEnd(true);
else if (
!startsAt.length &&
new Date().getTime() <= new Date(ends).getTime()
)
setValidEnd(true);
else if (new Date(startsAt).getTime() <= new Date(ends).getTime())
setValidEnd(true);
else {
setValidEnd(false);
}
if (!validEnd || !repeatValid) {
wrappedSetValid(false);
} else if (isFuture && startsAt.length) {
wrappedSetValid(true);
} else if (!isFuture) {
wrappedSetValid(true);
} else {
wrappedSetValid(false);
}
}, [
wrappedSetValid,
isNeverEnds,
startsAt,
startsBefore,
isFuture,
validEnd,
repeatValid,
ends,
]);
return (
<>