import type { FunctionComponent, CSSProperties } from 'react'; import { Fragment } from 'react'; import { css } from '@patternfly/react-styles'; import { createUseStyles } from 'react-jss'; export interface AnsibleProps extends React.DetailedHTMLProps, HTMLElement> { /** Supported/unsupported variant flag */ isSupported?: boolean; /** Red Hat Ansible Automation Platform technology icon */ isRHAAP?: boolean; /** Ansible icon className */ className?: string; /** Custom OUIA ID */ ouiaId?: string | number; } const RHAAPTechnologyIcon = const useStyles = createUseStyles({ ansible: { '& svg': { height: 'var(--pf-t--global--font--size--xl)', position: 'relative', top: '0.25rem' } }, ansibleSupported: { '& .st0': { fill: 'var(--pf-t-global--icon--color--regular)', } }, ansibleUnsupported: { '& .st0, .st1, .st2': { fill: 'var(--pf-t--global--icon--color--disabled)', cursor: 'not-allowed', } } }) const Ansible: FunctionComponent = ({ isSupported = true, isRHAAP, className, ouiaId = "Ansible-icon", ...props }: AnsibleProps) => { const classes = useStyles(); const ansibleLogoClass = css( classes.ansible, { [classes.ansibleSupported]: isSupported }, { [classes.ansibleUnsupported]: !isSupported }, className ); const unsupportedSlash = ( ); return ( ( {isRHAAP ? ( {RHAAPTechnologyIcon} ) : ( {isSupported ? null : unsupportedSlash} ) } ) ); }; export default Ansible;