webpack/components/Errata/index.js in katello-4.6.2.1 vs webpack/components/Errata/index.js in katello-4.7.0.rc1

- old
+ new

@@ -1,9 +1,9 @@ import React from 'react'; import PropTypes from 'prop-types'; import { TableText } from '@patternfly/react-table'; -import { Tooltip } from '@patternfly/react-core'; +import { Tooltip, ToggleGroupItem } from '@patternfly/react-core'; import { chart_color_black_500 as pfBlack, chart_color_gold_400 as pfGold, chart_color_orange_300 as pfOrange, chart_color_red_200 as pfRed, @@ -15,13 +15,15 @@ EnhancementIcon, SquareIcon, } from '@patternfly/react-icons'; import { TranslatedAnchor } from '../Table/components/TranslatedPlural'; -export const ErrataMapper = ({ data, id }) => data.map(({ x: type, y: count }) => <ErrataSummary count={count} type={type} key={`${count} ${type}`} id={id} />); +export const ErrataMapper = ({ data, id, errataCategory }) => + data.map(({ x: type, y: count }) => + <ErrataSummary count={count} type={type} key={`${count} ${type}`} id={id} errataCategory={errataCategory} />); -export const ErrataSummary = ({ type, count }) => { +export const ErrataSummary = ({ type, count, errataCategory }) => { let ErrataIcon; let label; let url; let color; switch (type) { @@ -31,11 +33,11 @@ color = '#0066cc'; url = ( <TranslatedAnchor id="errata-card-security-count" style={{ marginLeft: '0.4rem' }} - href="#/Content/errata?type=security" + href={`#/Content/errata?type=security&show=${errataCategory}`} count={count} plural="security advisories" singular="security advisory" zeroMsg="# security advisories" ariaLabel={`${count} security advisories`} @@ -49,11 +51,11 @@ color = '#8bc1f7'; url = ( <TranslatedAnchor id="errata-card-bugfix-count" style={{ marginLeft: '0.4rem' }} - href="#/Content/errata?type=bugfix" + href={`#/Content/errata?type=bugfix&show=${errataCategory}`} count={count} plural="bug fixes" singular="bug fix" zeroMsg="# bug fixes" ariaLabel={`${count} bug fixes`} @@ -67,11 +69,11 @@ color = '#002f5d'; url = ( <TranslatedAnchor id="errata-card-enhancement-count" style={{ marginLeft: '0.4rem' }} - href="#/Content/errata?type=enhancement" + href={`#/Content/errata?type=enhancement&show=${errataCategory}`} count={count} plural="enhancements" singular="enhancement" zeroMsg="# enhancements" ariaLabel={`${count} enhancements`} @@ -98,19 +100,22 @@ }; ErrataSummary.propTypes = { type: PropTypes.string.isRequired, count: PropTypes.number.isRequired, + errataCategory: PropTypes.string.isRequired, }; export const ErrataType = ({ type }) => { let ErrataIcon; let label; + let verticalAlign = '-0.125em'; switch (type) { case 'security': label = __('Security'); ErrataIcon = SecurityIcon; + verticalAlign = '-0.2em'; break; case 'recommended': case 'bugfix': label = __('Bugfix'); ErrataIcon = BugIcon; @@ -125,13 +130,15 @@ if (!ErrataIcon) return null; return ( <TableText wrapModifier="nowrap"> - <Tooltip content={label} > - <ErrataIcon style={{ marginRight: '4px' }} /> - </Tooltip> + <span style={{ marginRight: '4px' }}> + <Tooltip content={label}> + <ErrataIcon style={{ verticalAlign }} /> + </Tooltip> + </span> {label} </TableText> ); }; @@ -164,17 +171,43 @@ label = __('N/A'); } return ( <TableText wrapModifier="nowrap"> {color && - <Tooltip content={label} > - <SecurityIcon color={color} /> - </Tooltip> + <span style={{ marginRight: '4px' }}> + <Tooltip content={label} > + <SecurityIcon color={color} style={{ verticalAlign: '-0.2em' }} /> + </Tooltip> + </span> } {label} </TableText> ); }; ErrataSeverity.propTypes = { severity: PropTypes.string.isRequired, +}; + +export const ErrataToggleGroupItem = ({ + text, tooltipText, isSelected, onChange, ...toggleGroupItemProps +}) => ( + <Tooltip + content={tooltipText} + position="top" + enableFlip + > + <ToggleGroupItem + text={text} + isSelected={isSelected} + onChange={onChange} + {...toggleGroupItemProps} + /> + </Tooltip> +); + +ErrataToggleGroupItem.propTypes = { + text: PropTypes.string.isRequired, + tooltipText: PropTypes.string.isRequired, + isSelected: PropTypes.bool.isRequired, + onChange: PropTypes.func.isRequired, };