You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/06/02 17:17:18 UTC
(superset) branch master updated: fix(dashboard): hide Edit button in embedded dashboards (#40687)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new d26a7aac3dd fix(dashboard): hide Edit button in embedded dashboards (#40687)
d26a7aac3dd is described below
commit d26a7aac3dd8a79259860ebe7417343686ad7106
Author: Evan Rusackas <ev...@preset.io>
AuthorDate: Tue Jun 2 10:17:10 2026 -0700
fix(dashboard): hide Edit button in embedded dashboards (#40687)
Co-authored-by: Claude Code <no...@anthropic.com>
---
.../src/dashboard/components/Header/Header.test.tsx | 15 +++++++++++++++
.../src/dashboard/components/Header/index.tsx | 3 ++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/superset-frontend/src/dashboard/components/Header/Header.test.tsx b/superset-frontend/src/dashboard/components/Header/Header.test.tsx
index ac331442021..d6890cbf3e7 100644
--- a/superset-frontend/src/dashboard/components/Header/Header.test.tsx
+++ b/superset-frontend/src/dashboard/components/Header/Header.test.tsx
@@ -611,6 +611,21 @@ test('should toggle the edit mode', () => {
expect(logEvent).toHaveBeenCalled();
});
+test('should NOT render the Edit dashboard button when embedded', () => {
+ // Embedded (Embedded SDK) dashboards authenticate with a guest token and so
+ // have no userId. The Edit button must be hidden even with edit permission,
+ // since the embedded context cannot handle entering/exiting edit mode.
+ const embeddedCanEditState = {
+ dashboardInfo: {
+ ...initialState.dashboardInfo,
+ dash_edit_perm: true,
+ userId: undefined,
+ },
+ };
+ setup(embeddedCanEditState);
+ expect(screen.queryByTestId('edit-dashboard-button')).not.toBeInTheDocument();
+});
+
test('should render the dropdown icon', () => {
setup();
expect(screen.getByRole('img', { name: 'ellipsis' })).toBeInTheDocument();
diff --git a/superset-frontend/src/dashboard/components/Header/index.tsx b/superset-frontend/src/dashboard/components/Header/index.tsx
index 522a22f1eca..5eced8188e6 100644
--- a/superset-frontend/src/dashboard/components/Header/index.tsx
+++ b/superset-frontend/src/dashboard/components/Header/index.tsx
@@ -749,7 +749,7 @@ const Header = (): JSX.Element => {
) : (
<div css={actionButtonsStyle}>
{NavExtension && <NavExtension />}
- {userCanEdit && (
+ {userCanEdit && !isEmbedded && (
<Button
buttonStyle="secondary"
onClick={handleEnterEditMode}
@@ -776,6 +776,7 @@ const Header = (): JSX.Element => {
handleCtrlZ,
handleEnterEditMode,
hasUnsavedChanges,
+ isEmbedded,
overwriteDashboard,
redoLength,
undoLength,