From d310df1b0360e1ee71797c8adebb88486f82304d Mon Sep 17 00:00:00 2001 From: Jenny Zhu Date: Thu, 5 Mar 2026 22:02:24 -0500 Subject: [PATCH] fix: OU1247 Follow up to address timerange persisting between dashboard toggle in the same project --- .../dashboards/perses/dashboard-create-dialog.tsx | 3 ++- .../components/dashboards/perses/dashboard-list.tsx | 12 ++++++++++++ .../dashboards/perses/hooks/useDashboardsData.ts | 10 +++++----- web/src/components/query-params.ts | 3 +++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/web/src/components/dashboards/perses/dashboard-create-dialog.tsx b/web/src/components/dashboards/perses/dashboard-create-dialog.tsx index d6b6ec6a1..a08a00096 100644 --- a/web/src/components/dashboards/perses/dashboard-create-dialog.tsx +++ b/web/src/components/dashboards/perses/dashboard-create-dialog.tsx @@ -53,10 +53,11 @@ export const DashboardCreateDialog: React.FunctionComponent { const { t } = useTranslation(process.env.I18N_NAMESPACE); + const { permissionsLoading } = useEditableProjects(); const { canEdit, loading } = usePersesEditPermissions(project); const disabled = !canEdit; @@ -90,6 +92,16 @@ const DashboardActionsCell = React.memo( ); } + if (permissionsLoading) { + return ( + +
+ +
+
+ ); + } + return ; }, ); diff --git a/web/src/components/dashboards/perses/hooks/useDashboardsData.ts b/web/src/components/dashboards/perses/hooks/useDashboardsData.ts index dbc71c180..ff1f11ef2 100644 --- a/web/src/components/dashboards/perses/hooks/useDashboardsData.ts +++ b/web/src/components/dashboards/perses/hooks/useDashboardsData.ts @@ -105,16 +105,16 @@ export const useDashboardsData = () => { const params = new URLSearchParams(queryArguments); - let projectToUse = activeProject; - if (!activeProject) { - const dashboardMetadata = combinedDashboardsMetadata.find((item) => item.name === newBoard); - projectToUse = dashboardMetadata?.project; - } + const dashboard = combinedDashboardsMetadata.find((item) => item.name === newBoard); + + const projectToUse = activeProject || dashboard?.project; if (projectToUse) { params.set(QueryParams.Project, projectToUse); } params.set(QueryParams.Dashboard, newBoard); + params.set(QueryParams.Start, dashboard?.persesDashboard?.spec?.duration); + params.set(QueryParams.Refresh, dashboard?.persesDashboard?.spec?.refreshInterval); let url = getDashboardUrl(perspective); url = `${url}?${params.toString()}`; diff --git a/web/src/components/query-params.ts b/web/src/components/query-params.ts index 628bb3fd3..7d27511d9 100644 --- a/web/src/components/query-params.ts +++ b/web/src/components/query-params.ts @@ -5,4 +5,7 @@ export enum QueryParams { EndTime = 'endTime', Datasource = 'datasource', Project = 'project', + Edit = 'edit', + Start = 'start', + Refresh = 'refresh', }