/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { useState } from "react"; import { EuiButton } from "@elastic/eui"; import DeleteIndexModal from "../DeleteComposableTemplatesModal"; import AssociatedTemplatesModal from "../AssociatedTemplatesModal"; export interface renderDeleteButtonProps { selectedItems: string[]; triggerDelete: () => void; } export interface ComposableTemplatesActionsProps { selectedItems: renderDeleteButtonProps["selectedItems"]; onDelete: () => void; renderDeleteButton?: (props: renderDeleteButtonProps) => React.ReactChild; } export function ComposableTemplatesDeleteAction(props: ComposableTemplatesActionsProps) { const { selectedItems, onDelete } = props; const [deleteIndexModalVisible, setDeleteIndexModalVisible] = useState(false); const renderDeleteButton: (props: { selectedItems: renderDeleteButtonProps["selectedItems"]; setVisible: React.Dispatch>; }) => React.ReactChild = (renderProps) => { const triggerDelete = () => { setDeleteIndexModalVisible(true); }; if (props.renderDeleteButton) { return props.renderDeleteButton({ ...renderProps, triggerDelete, }); } return ( Delete ); }; const onDeleteIndexModalClose = () => { setDeleteIndexModalVisible(false); }; return ( <> renderDeleteButton({ selectedItems, setVisible })} /> { onDeleteIndexModalClose(); onDelete(); }} /> ); } export default function ComposableTemplatesAction(props: ComposableTemplatesActionsProps) { return ; }