Sha256: 0078a5f7e9add6c67ab840236d746671188be5f88f5262f186051bf49d7dbf4d
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
import React from 'react'; import PropTypes from 'prop-types'; import { useSelector } from 'react-redux'; import URI from 'urijs'; import { List, ListItem, Modal, Button } from '@patternfly/react-core'; import { translate as __, sprintf } from 'foremanReact/common/I18n'; import { foremanUrl } from 'foremanReact/common/helpers'; import { selectHosts, selectHostCount } from '../../JobWizardSelectors'; import { HOSTS_TO_PREVIEW_AMOUNT } from '../../JobWizardConstants'; export const HostPreviewModal = ({ isOpen, setIsOpen, searchQuery }) => { const hosts = useSelector(selectHosts); const hostsCount = useSelector(selectHostCount); const url = new URI(foremanUrl('/hosts')); return ( <Modal title={__('Preview Hosts')} isOpen={isOpen} onClose={() => setIsOpen(false)} appendTo={() => document.getElementsByClassName('job-wizard')[0]} > <List isPlain> {hosts.map(host => ( <ListItem key={host.name}> <Button component="a" href={foremanUrl(`/hosts/${host.name}`)} variant="link" target="_blank" rel="noreferrer" isInline > {host.display_name} </Button> </ListItem> ))} {hostsCount > HOSTS_TO_PREVIEW_AMOUNT && ( <ListItem> <Button component="a" href={url.addSearch({ search: searchQuery })} variant="link" target="_blank" rel="noreferrer" isInline > {sprintf( __('...and %s more'), hostsCount - HOSTS_TO_PREVIEW_AMOUNT )} </Button> </ListItem> )} </List> </Modal> ); }; HostPreviewModal.propTypes = { isOpen: PropTypes.bool.isRequired, setIsOpen: PropTypes.func.isRequired, searchQuery: PropTypes.string.isRequired, }; HostPreviewModal.defaultPropTypes = { searchQuery: '', };
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
foreman_remote_execution-13.0.0 | webpack/JobWizard/steps/HostsAndInputs/HostPreviewModal.js |