Sha256: 8fdf13d5d79c2c40a5f494ad7c53062accb54a4419c0bff0212255c70fd671b2

Contents?: true

Size: 1.99 KB

Versions: 35

Compression:

Stored size: 1.99 KB

Contents

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

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);
      dispatch({ type: CONTENT_VIEW_NEEDS_PUBLISH });
    }));
  };
  const getLabel = () => {
    switch (true) {
    case type === 'modulemd' && inclusion:
      return __('Include all module streams not associated to any errata');
    case type === 'modulemd' && !inclusion:
      return __('Exclude all module streams not associated to any errata');
    case !inclusion:
      return __('Exclude all RPMs not associated to any errata');
    default:
      return __('Include all RPMs not associated to any errata');
    }
  };

  return (<Switch
    ouiaId="artifactsNoErrata"
    id="artifactsNoErrata"
    name="artifactsNoErrata"
    label={getLabel()}
    isChecked={artifactsNoErrata}
    isDisabled={isLoading}
    onChange={checked => setArtifactsNoErrata(checked)}
  />);
};

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

export default ArtifactsWithNoErrataRenderer;

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
katello-4.16.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.15.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.16.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.16.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.3 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.15.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.15.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.15.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.0.rc3 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.0.rc2 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.0.rc1.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.14.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.13.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.13.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.12.1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.13.0.rc1 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js
katello-4.12.0 webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js