Sha256: 48e07fd9e5150e0dc01291881a5003251ddc0b32298f5e30587a9e9251836174

Contents?: true

Size: 1.26 KB

Versions: 21

Compression:

Stored size: 1.26 KB

Contents

import React, { useState } from 'react';
import PropTypes from 'prop-types';
import { translate as __, sprintf } from 'foremanReact/common/I18n';
import ConfirmModal from './ConfirmModal';

const withDelete = Component => {
  const Subcomponent = ({
    confirmDeleteTitle,
    submitDelete,
    prepareMutation,
    ...rest
  }) => {
    const [toDelete, setToDelete] = useState(null);

    const toggleModal = (item = null) => {
      setToDelete(item);
    };

    return (
      <React.Fragment>
        <Component {...rest} toggleModal={toggleModal} />
        <ConfirmModal
          title={confirmDeleteTitle}
          text={
            toDelete
              ? sprintf(
                  __('Are you sure you want to delete %s?'),
                  toDelete.name
                )
              : ''
          }
          onClose={toggleModal}
          isOpen={!!toDelete}
          onConfirm={submitDelete}
          prepareMutation={() => prepareMutation(toggleModal)}
          record={toDelete}
        />
      </React.Fragment>
    );
  };

  Subcomponent.propTypes = {
    confirmDeleteTitle: PropTypes.string.isRequired,
    submitDelete: PropTypes.func.isRequired,
    prepareMutation: PropTypes.func.isRequired,
  };

  return Subcomponent;
};

export default withDelete;

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
foreman_openscap-10.1.0 webpack/components/withDeleteModal.js
foreman_openscap-10.0.3 webpack/components/withDeleteModal.js
foreman_openscap-10.0.2 webpack/components/withDeleteModal.js
foreman_openscap-10.0.1 webpack/components/withDeleteModal.js
foreman_openscap-10.0.0 webpack/components/withDeleteModal.js
foreman_openscap-9.0.4 webpack/components/withDeleteModal.js
foreman_openscap-9.0.3 webpack/components/withDeleteModal.js
foreman_openscap-9.0.2 webpack/components/withDeleteModal.js
foreman_openscap-9.0.1 webpack/components/withDeleteModal.js
foreman_openscap-9.0.0 webpack/components/withDeleteModal.js
foreman_openscap-8.0.0 webpack/components/withDeleteModal.js
foreman_openscap-7.1.1 webpack/components/withDeleteModal.js
foreman_openscap-7.1.0 webpack/components/withDeleteModal.js
foreman_openscap-7.0.0 webpack/components/withDeleteModal.js
foreman_openscap-6.0.0 webpack/components/withDeleteModal.js
foreman_openscap-5.2.3 webpack/components/withDeleteModal.js
foreman_openscap-5.2.2 webpack/components/withDeleteModal.js
foreman_openscap-5.1.1 webpack/components/withDeleteModal.js
foreman_openscap-5.2.1 webpack/components/withDeleteModal.js
foreman_openscap-5.2.0 webpack/components/withDeleteModal.js