import { css } from '@emotion/css'; import { useCallback, useState } from 'react'; import { useAsyncFn } from 'react-use'; import { GrafanaTheme2 } from '@grafana/data'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors'; import { VizPanel } from '@grafana/scenes'; import { Button, ButtonGroup, Dropdown, useStyles2 } from '@grafana/ui'; import { t, Trans } from 'app/core/internationalization'; import { DashboardScene } from '../../scene/DashboardScene'; import { DashboardInteractions } from '../../utils/interactions'; import ShareMenu from './ShareMenu'; import { buildShareUrl } from './utils'; const newShareButtonSelector = e2eSelectors.pages.Dashboard.DashNav.newShareButton; export default function ShareButton({ dashboard, panel }: { dashboard: DashboardScene; panel?: VizPanel }) { const styles = useStyles2(getStyles); const [isOpen, setIsOpen] = useState(false); const [_, buildUrl] = useAsyncFn(async () => { DashboardInteractions.toolbarShareClick(); return await buildShareUrl(dashboard, panel); }, [dashboard]); const onMenuClick = useCallback((isOpen: boolean) => { if (isOpen) { DashboardInteractions.toolbarShareDropdownClick(); } setIsOpen(isOpen); }, []); const MenuActions = () => ; return (