/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { EuiButton, EuiContextMenu, EuiPopover } from '@elastic/eui';
import React, { useState } from 'react';
import {
CREATE_TAB_PARAM,
CREATE_TAB_PARAM_KEY,
TAB_CHART_ID,
} from '../../../../common/constants/explorer';
import { observabilityLogsID } from '../../../../common/constants/shared';
interface AddVisualizationPopoverProps {
showFlyout: (isReplacement?: boolean, replaceVizId?: string) => void;
addVizDisabled: boolean;
}
export const AddVisualizationPopover = ({
addVizDisabled,
showFlyout,
}: AddVisualizationPopoverProps) => {
const [isVizPopoverOpen, setVizPopoverOpen] = useState(false); // Add Visualization Popover
const onPopoverClick = () => {
setVizPopoverOpen(!isVizPopoverOpen);
};
const closeVizPopover = () => {
setVizPopoverOpen(false);
};
const advancedVisualization = () => {
closeVizPopover();
window.location.assign(
`${observabilityLogsID}#/explorer?${CREATE_TAB_PARAM_KEY}=${CREATE_TAB_PARAM[TAB_CHART_ID]}`
);
};
const getVizContextPanels = () => {
return [
{
id: 0,
title: 'Add visualization',
items: [
{
name: 'Select existing visualization',
'data-test-subj': 'selectExistingVizContextMenuItem',
onClick: () => {
if (closeVizPopover != null) {
closeVizPopover();
}
showFlyout();
},
},
{
name: 'Create new visualization',
'data-test-subj': 'createNewVizContextMenuItem',
onClick: () => {
advancedVisualization();
},
},
],
},
];
};
const addVisualizationButton = (
Add visualization
);
return (
);
};