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": {