Files
grafana/public/app/features/dashboard/components/DashNav/ShareButton.tsx
Torkel Ödegaard 1d1bdaab37 DashboardScene: ShareModal + link sharing (#74955)
* DashboardScene: Panel menu updates, adding explore action

* DashboardScene: Panel menu updates, adding explore action

* Initial test

* Update

* share modal

* Update

* rename

* Update tests

* Fix test

* update

* Fix tooltip wording

* Update translation file

* fix e2e

* Extract ShareLinkTab component

* rename to overlay

---------

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2023-09-19 16:02:21 +02:00

43 lines
1.1 KiB
TypeScript

import React, { useContext, useEffect } from 'react';
import { ModalsContext } from '@grafana/ui';
import { useQueryParams } from 'app/core/hooks/useQueryParams';
import { t } from 'app/core/internationalization';
import { DashboardModel } from 'app/features/dashboard/state';
import { ShareModal } from '../ShareModal';
import { DashNavButton } from './DashNavButton';
export const ShareButton = ({ dashboard }: { dashboard: DashboardModel }) => {
const [queryParams] = useQueryParams();
const { showModal, hideModal } = useContext(ModalsContext);
useEffect(() => {
if (!!queryParams.shareView) {
showModal(ShareModal, {
dashboard,
onDismiss: hideModal,
activeTab: String(queryParams.shareView),
});
}
return () => {
hideModal();
};
}, [showModal, hideModal, dashboard, queryParams.shareView]);
return (
<DashNavButton
tooltip={t('dashboard.toolbar.share', 'Share dashboard')}
icon="share-alt"
iconSize="lg"
onClick={() => {
showModal(ShareModal, {
dashboard,
onDismiss: hideModal,
});
}}
/>
);
};