Sha256: 655bc8909a1b0e4e5bc3c5a0573e2917837b568a515879058039d94ab9d02b33

Contents?: true

Size: 1.79 KB

Versions: 18

Compression:

Stored size: 1.79 KB

Contents

import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
import PropTypes from 'prop-types';
import { Checkbox } from '@patternfly/react-core';
import { translate as __ } from 'foremanReact/common/I18n';
import { editCVFilter } from '../ContentViewDetailActions';

export const ArtifactsWithNoErrataRenderer = ({ filterDetails }) => {
  const dispatch = useDispatch();
  const { id, inclusion, type } = filterDetails;

  const artifactAttribute = (type === 'modulemd') ? 'original_module_streams' : 'original_packages';
  const [artifactsNoErrata, enableArtifactsNoErrata] =
      useState(filterDetails[artifactAttribute] === true);

  const [isLoading, setLoading] = useState(false);

  const setArtifactsNoErrata = (checked) => {
    enableArtifactsNoErrata(checked);
    setLoading(true);
    dispatch(editCVFilter(id, { [artifactAttribute]: checked }, () => setLoading(false)));
  };
  const getLabel = () => {
    switch (true) {
    case type === 'modulemd' && inclusion:
      return __('Include all Module Streams with no errata.');
    case type === 'modulemd' && !inclusion:
      return __('Exclude all Module Streams with no errata.');
    case !inclusion:
      return __('Exclude all RPMs with no errata.');
    default:
      return __('Include all RPMs with no errata.');
    }
  };

  return (<Checkbox
    id="artifactsNoErrata"
    name="artifactsNoErrata"
    label=<p style={{ marginTop: '4px' }}>{getLabel()}</p>
    isChecked={artifactsNoErrata}
    isDisabled={isLoading}
    onChange={setArtifactsNoErrata}
  />);
};

ArtifactsWithNoErrataRenderer.propTypes = {
  filterDetails: PropTypes.shape({
    inclusion: PropTypes.bool.isRequired,
    type: PropTypes.string.isRequired,
    id: PropTypes.number.isRequired,
  }).isRequired,
};

export default ArtifactsWithNoErrataRenderer;

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
katello-4.6.2.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.6.2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.6.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.2.2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.2.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.5.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.6.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.6.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.6.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.5.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.5.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.5.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.0.2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.0.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.4.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js