/* * Copyright OpenSearch Contributors * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://www.apache.org/licenses/LICENSE-2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import { EuiButtonProps, EuiPopover, EuiContextMenuPanel, EuiButton, EuiFlexGroup, EuiFlexItem, } from '@elastic/eui'; import { useState } from 'react'; import React from 'react'; export function useContextMenuState( buttonText: string, buttonProps: EuiButtonProps, children: React.ReactElement[] ): [React.ReactElement, () => void] { const [isContextMenuOpen, setContextMenuOpen] = useState(false); const closeContextMenu = () => setContextMenuOpen(false); const button = ( { setContextMenuOpen(true); }} {...buttonProps} > {buttonText} ); const items = [ {children.map((child, index) => ( {child} ))} , ]; const component = ( ); return [component, closeContextMenu]; }