/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { ChangeEvent, Component } from 'react'; import { EuiConfirmModal, EuiFieldText, EuiForm, EuiFormRow, EuiOverlayMask, EuiSpacer, } from '@elastic/eui'; interface DeleteModalProps { additionalWarning?: string; closeDeleteModal: (event?: any) => void; confirmation?: boolean; ids: string; onClickDelete: (event?: any) => void; type: string; } interface DeleteModalState { confirmDeleteText: string; } export const DEFAULT_DELETION_TEXT = 'delete'; export default class DeleteModal extends Component { constructor(props: DeleteModalProps) { super(props); const { confirmation } = props; this.state = { confirmDeleteText: confirmation ? '' : DEFAULT_DELETION_TEXT, }; } onChange = (e: ChangeEvent): void => { this.setState({ confirmDeleteText: e.target.value }); }; render() { const { type, ids, closeDeleteModal, onClickDelete, additionalWarning, confirmation, } = this.props; const { confirmDeleteText } = this.state; return ( { onClickDelete(); closeDeleteModal(); }} cancelButtonText={'Cancel'} confirmButtonText={`Delete ${type}`} buttonColor={'danger'} defaultFocusedButton="confirm" confirmButtonDisabled={confirmDeleteText != DEFAULT_DELETION_TEXT} >

Delete "{ids}" permanently? {additionalWarning}

{!!confirmation && ( )}
); } }