diff --git a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx index 77113ff1b2b..2e36a248586 100644 --- a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx +++ b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx @@ -5,17 +5,7 @@ import { GrafanaTheme2, store } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { Trans, t } from '@grafana/i18n'; import { config, locationService } from '@grafana/runtime'; -import { - Badge, - Button, - ButtonGroup, - Dropdown, - Icon, - Menu, - ToolbarButton, - ToolbarButtonRow, - useStyles2, -} from '@grafana/ui'; +import { Button, ButtonGroup, Dropdown, Icon, Menu, ToolbarButton, ToolbarButtonRow, useStyles2 } from '@grafana/ui'; import { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate'; import { NavToolbarSeparator } from 'app/core/components/AppChrome/NavToolbar/NavToolbarSeparator'; import grafanaConfig from 'app/core/config'; @@ -39,6 +29,7 @@ import { GoToSnapshotOriginButton } from './GoToSnapshotOriginButton'; import ManagedDashboardNavBarBadge from './ManagedDashboardNavBarBadge'; import { LeftActions } from './new-toolbar/LeftActions'; import { RightActions } from './new-toolbar/RightActions'; +import { PublicDashboardBadge } from './new-toolbar/actions/PublicDashboardBadge'; interface Props { dashboard: DashboardScene; @@ -119,23 +110,13 @@ export function ToolbarActions({ dashboard }: Props) { }, }); - if (meta.publicDashboardEnabled) { - toolbarActions.push({ - group: 'icon-actions', - condition: uid && Boolean(meta.canStar) && isShowingDashboard && !isEditing, - render: () => { - return ( - - ); - }, - }); - } + toolbarActions.push({ + group: 'icon-actions', + condition: uid && Boolean(meta.canStar) && isShowingDashboard && !isEditing, + render: () => { + return ; + }, + }); if (dashboard.isManaged() && meta.canEdit) { toolbarActions.push({ diff --git a/public/app/features/dashboard-scene/scene/new-toolbar/LeftActions.tsx b/public/app/features/dashboard-scene/scene/new-toolbar/LeftActions.tsx index ec37d446145..6f7f361caf6 100644 --- a/public/app/features/dashboard-scene/scene/new-toolbar/LeftActions.tsx +++ b/public/app/features/dashboard-scene/scene/new-toolbar/LeftActions.tsx @@ -16,7 +16,6 @@ export const LeftActions = ({ dashboard }: { dashboard: DashboardScene }) => { const isViewingPanel = Boolean(viewPanelScene); const isEditingDashboard = Boolean(isEditing); const isEditingPanel = Boolean(editPanel); - const isPublicDashboard = Boolean(meta.publicDashboardEnabled); const hasUid = Boolean(uid); const canEdit = Boolean(meta.canEdit); const canStar = Boolean(meta.canStar); @@ -37,7 +36,7 @@ export const LeftActions = ({ dashboard }: { dashboard: DashboardScene }) => { key: 'public-dashboard-badge', component: PublicDashboardBadge, group: 'actions', - condition: isPublicDashboard && hasUid && canStar && isShowingDashboard && !isEditingDashboard, + condition: hasUid && canStar && isShowingDashboard && !isEditingDashboard, }, { key: 'managed-dashboard-badge', diff --git a/public/app/features/dashboard-scene/scene/new-toolbar/actions/PublicDashboardBadge.tsx b/public/app/features/dashboard-scene/scene/new-toolbar/actions/PublicDashboardBadge.tsx index 46cbebda4fd..9cab7a7ab2a 100644 --- a/public/app/features/dashboard-scene/scene/new-toolbar/actions/PublicDashboardBadge.tsx +++ b/public/app/features/dashboard-scene/scene/new-toolbar/actions/PublicDashboardBadge.tsx @@ -3,10 +3,32 @@ import { css } from '@emotion/css'; import { selectors } from '@grafana/e2e-selectors'; import { t } from '@grafana/i18n'; import { Badge, useStyles2 } from '@grafana/ui'; +import { useGetPublicDashboardQuery } from 'app/features/dashboard/api/publicDashboardApi'; import { ToolbarActionProps } from '../types'; -export const PublicDashboardBadge = ({}: ToolbarActionProps) => { +export const PublicDashboardBadge = ({ dashboard }: ToolbarActionProps) => { + if (!dashboard.state.uid) { + return null; + } + + return ; +}; + +// Used in old architecture +export const PublicDashboardBadgeLegacy = PublicDashboardBadgeInternal; + +function PublicDashboardBadgeInternal({ uid }: { uid?: string }) { + if (!uid) { + return null; + } + + const { data: publicDashboard } = useGetPublicDashboardQuery(uid); + + if (!publicDashboard) { + return null; + } + const styles = useStyles2(getStyles); return ( @@ -17,7 +39,7 @@ export const PublicDashboardBadge = ({}: ToolbarActionProps) => { data-testid={selectors.pages.Dashboard.DashNav.publicDashboardTag} /> ); -}; +} const getStyles = () => ({ badge: css({ diff --git a/public/app/features/dashboard/components/DashNav/DashNav.tsx b/public/app/features/dashboard/components/DashNav/DashNav.tsx index b4a6e81d6cd..0999d86780e 100644 --- a/public/app/features/dashboard/components/DashNav/DashNav.tsx +++ b/public/app/features/dashboard/components/DashNav/DashNav.tsx @@ -4,7 +4,6 @@ import { connect, ConnectedProps } from 'react-redux'; import { useLocation } from 'react-router-dom-v5-compat'; import { textUtil } from '@grafana/data'; -import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; import { Trans, t } from '@grafana/i18n'; import { locationService } from '@grafana/runtime'; import { @@ -14,7 +13,6 @@ import { useForceUpdate, ToolbarButtonRow, ConfirmModal, - Badge, } from '@grafana/ui'; import { updateNavIndex } from 'app/core/actions'; import { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate'; @@ -29,6 +27,7 @@ import AddPanelButton from 'app/features/dashboard/components/AddPanelButton/Add import { SaveDashboardDrawer } from 'app/features/dashboard/components/SaveDashboard/SaveDashboardDrawer'; import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; import { DashboardModel } from 'app/features/dashboard/state/DashboardModel'; +import { PublicDashboardBadgeLegacy } from 'app/features/dashboard-scene/scene/new-toolbar/actions/PublicDashboardBadge'; import { DashboardInteractions } from 'app/features/dashboard-scene/utils/interactions'; import { playlistSrv } from 'app/features/playlist/PlaylistSrv'; import { updateTimeZoneForSession } from 'app/features/profile/state/reducers'; @@ -58,8 +57,6 @@ const mapStateToProps = (state: StoreState) => ({ const connector = connect(mapStateToProps, mapDispatchToProps); -const selectors = e2eSelectors.pages.Dashboard.DashNav; - export interface OwnProps { dashboard: DashboardModel; isFullscreen: boolean; @@ -215,18 +212,7 @@ export const DashNav = memo((props) => { ); } - if (dashboard.meta.publicDashboardEnabled) { - // TODO: This will be replaced with the new badge component. Color is required but gets override by css - buttons.push( - - ); - } + buttons.push(); if (isDevEnv && config.featureToggles.dashboardScene) { buttons.push( @@ -377,9 +363,3 @@ const modalStyles = css({ width: 'max-content', maxWidth: '80vw', }); - -const publicBadgeStyle = css({ - color: 'grey', - backgroundColor: 'transparent', - border: '1px solid', -}); diff --git a/public/locales/en-US/grafana.json b/public/locales/en-US/grafana.json index 197750619cf..ff317b5d624 100644 --- a/public/locales/en-US/grafana.json +++ b/public/locales/en-US/grafana.json @@ -4399,7 +4399,6 @@ } }, "render-left-actions": { - "text-public": "Public", "tooltip-view-as-scene": "View as Scene" } }, @@ -5173,7 +5172,6 @@ "playlist-next": "Go to next dashboard", "playlist-previous": "Go to previous dashboard", "playlist-stop": "Stop playlist", - "public-dashboard": "Public", "refresh": "Refresh dashboard", "save": "Save dashboard", "save-dashboard": {