/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { useMemo, useState } from "react"; import { EuiButton, EuiContextMenu } from "@elastic/eui"; import { RouteComponentProps } from "react-router-dom"; import SimplePopover from "../../../../components/SimplePopover"; import DeleteIndexModal from "../DeleteAliasModal"; import ClearCacheModal from "../../../../containers/ClearCacheModal"; import FlushIndexModal from "../../../../containers/FlushIndexModal"; import RefreshActionModal from "../../../../containers/RefreshAction"; import { IAlias } from "../../interface"; import { ROUTES, INDEX_OP_TARGET_TYPE } from "../../../../utils/constants"; export interface AliasesActionsProps { selectedItems: IAlias[]; onDelete: () => void; onUpdateAlias: () => void; history: RouteComponentProps["history"]; } export default function AliasesActions(props: AliasesActionsProps) { const { selectedItems, onDelete, onUpdateAlias, history } = props; const [deleteIndexModalVisible, setDeleteIndexModalVisible] = useState(false); const [clearCacheModalVisible, setClearCacheModalVisible] = useState(false); const [flushAliasModalVisible, setFlushAliasModalVisible] = useState(false); const [refreshModalVisible, setRefreshModalVisible] = useState(false); const onDeleteIndexModalClose = () => { setDeleteIndexModalVisible(false); }; const onClearCacheModalClose = () => { setClearCacheModalVisible(false); }; const onFlushAliasModalClose = () => { setFlushAliasModalVisible(false); }; const onRefreshModalClose = () => { setRefreshModalVisible(false); }; const renderKey = useMemo(() => Date.now(), [selectedItems]); return ( <> Actions } > { props.history.push(`${ROUTES.FORCE_MERGE}/${selectedItems.map((item) => item.alias).join(",")}`); }, }, { name: "Roll over", disabled: selectedItems.length > 1, "data-test-subj": "rolloverAction", onClick: () => history.push(selectedItems.length ? `${ROUTES.ROLLOVER}/${selectedItems[0].alias}` : ROUTES.ROLLOVER), }, { isSeparator: true, }, { name: "Clear cache", disabled: selectedItems.length < 1, "data-test-subj": "ClearCacheAction", onClick: () => setClearCacheModalVisible(true), }, { name: "Flush", disabled: !selectedItems.length, "data-test-subj": "Flush Action", onClick: () => setFlushAliasModalVisible(true), }, { name: "Refresh", disabled: !selectedItems.length, "data-test-subj": "refreshAction", onClick: () => setRefreshModalVisible(true), }, { isSeparator: true, }, { name: "Delete", disabled: !selectedItems.length, "data-test-subj": "deleteAction", onClick: () => setDeleteIndexModalVisible(true), }, ], }, ]} /> { onDeleteIndexModalClose(); onDelete(); }} /> ); }