Sha256: 0e8ce56449a093391a82770334f2d5f605f594c1875accaf83eb0d7a39dd8625

Contents?: true

Size: 1.55 KB

Versions: 35

Compression:

Stored size: 1.55 KB

Contents

import React, { useState } from 'react';
import {
  Button,
  Modal,
  ModalVariant,
  List, ListItem,
  SearchInput,
} from '@patternfly/react-core';

import { translate as __ } from 'foremanReact/common/I18n';
import { foremanUrl } from 'foremanReact/common/helpers';

import PropTypes from 'prop-types';

const HostsModal = ({
  hosts, isOpen, setModalOpenState, modalTitle,
}) => {
  const [search, setSearch] = useState('');

  return (
    <Modal
      ouiaId="hosts-modal-modal"
      variant={ModalVariant.small}
      title={modalTitle}
      position="top"
      isOpen={isOpen}
      onClose={() => setModalOpenState(false)}
    >
      <SearchInput
        placeholder={__('Search')}
        value={search}
        onChange={v => setSearch(v)}
        onClear={() => setSearch('')}
      />
      <List isPlain isBordered className="margin-top-16">
        {(search ? hosts.filter(h => (`${h.name}`).includes(search)) : hosts).map(h => (
          <ListItem key={h.id}>
            <Button
              ouiaId={`hosts-modal-button-${h.id}`}
              component="a"
              href={foremanUrl(`/new/hosts/${h.name}`)}
              variant="link"
              target="_blank"
              isInline
            >
              {h.name}
            </Button>
          </ListItem>
        ))}
      </List>
    </Modal>);
};

HostsModal.propTypes = {
  hosts: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
  isOpen: PropTypes.bool.isRequired,
  setModalOpenState: PropTypes.func.isRequired,
  modalTitle: PropTypes.string.isRequired,
};

export default HostsModal;

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
katello-4.16.0 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.15.1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.16.0.rc2 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.16.0.rc1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.3 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.2 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.15.0 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.15.0.rc2 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.15.0.rc1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.0 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.0.rc3 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.0.rc2 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.0.rc1.1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.14.0.rc1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.13.1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.13.0 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.12.1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.13.0.rc1 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js
katello-4.12.0 webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js