Sha256: a77f8632469b8edff7541720d6b7dd44c0a8555cba83aadeb634dd590334d1c6

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { FormGroup, Checkbox } from '@patternfly/react-core';
import { translate as __ } from 'foremanReact/common/I18n';
import { DateTimePicker } from '../form/DateTimePicker';

export const StartEndDates = ({
  starts,
  setStarts,
  ends,
  setEnds,
  isNeverEnds,
  setIsNeverEnds,
}) => {
  const toggleIsNeverEnds = (checked, event) => {
    const value = event?.target?.checked;
    setIsNeverEnds(value);
  };
  const validateEndDate = () => {
    if (isNeverEnds) return 'success';
    if (!starts || !ends) return 'success';
    if (new Date(starts).getTime() <= new Date(ends).getTime())
      return 'success';
    return 'error';
  };
  return (
    <>
      <FormGroup
        className="start-date"
        label={__('Starts')}
        fieldId="start-date"
      >
        <DateTimePicker dateTime={starts} setDateTime={setStarts} />
      </FormGroup>
      <FormGroup
        className="end-date"
        label={__('Ends')}
        fieldId="end-date"
        helperTextInvalid={__('End time needs to be after start time')}
        validated={validateEndDate()}
      >
        <DateTimePicker
          dateTime={ends}
          setDateTime={setEnds}
          isDisabled={isNeverEnds}
        />
        <Checkbox
          label={__('Never ends')}
          isChecked={isNeverEnds}
          onChange={toggleIsNeverEnds}
          id="never-ends"
          name="never-ends"
        />
      </FormGroup>
    </>
  );
};

StartEndDates.propTypes = {
  starts: PropTypes.string.isRequired,
  setStarts: PropTypes.func.isRequired,
  ends: PropTypes.string.isRequired,
  setEnds: PropTypes.func.isRequired,
  isNeverEnds: PropTypes.bool.isRequired,
  setIsNeverEnds: PropTypes.func.isRequired,
};

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_remote_execution-4.8.0 webpack/JobWizard/steps/Schedule/StartEndDates.js