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