// Copyright 2022 The Parca Authors // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License 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 {Menu} from '@headlessui/react'; import {Icon} from '@iconify/react'; import {useQueryState} from 'nuqs'; import {useParcaContext} from '@parca/components'; import {stringParam} from '../hooks/urlParsers'; import {useDashboardItems} from '../hooks/useDashboardItems'; const MoreDropdown = ({functionName}: {functionName: string}): React.JSX.Element | null => { const [_, setSandwichFunctionName] = useQueryState('sandwich_function_name', stringParam); const {dashboardItems, setDashboardItems} = useDashboardItems(); const {enableSandwichView} = useParcaContext(); const onSandwichViewSelect = (): void => { void setSandwichFunctionName(functionName.trim()); setDashboardItems([...dashboardItems, 'sandwich']); }; const menuItems: Array<{label: string; action: () => void}> = []; if (enableSandwichView === true) { menuItems.push({ label: 'Show in Sandwich view', action: () => onSandwichViewSelect(), }); } if (menuItems.length === 0) { return null; } return (