[v11.3.x] EmbedPanel: Add url sync and fix refresh (#98526)

EmbedPanel: Add url sync and fix refresh (#98390)

(cherry picked from commit 4631707276)

Co-authored-by: Juan Cabanas <juan.cabanas@grafana.com>
pull/98585/head
grafana-delivery-bot[bot] 6 months ago committed by GitHub
parent 1bdfc4c017
commit 6e824e5f5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 14
      public/app/features/dashboard-scene/solo/SoloPanelPage.tsx

@ -4,6 +4,7 @@ import { useEffect } from 'react';
import { useParams } from 'react-router-dom-v5-compat';
import { GrafanaTheme2 } from '@grafana/data';
import { UrlSyncContextProvider } from '@grafana/scenes';
import { Alert, Spinner, useStyles2 } from '@grafana/ui';
import PageLoader from 'app/core/components/PageLoader/PageLoader';
import { EntityNotFound } from 'app/core/components/PageNotFound/EntityNotFound';
@ -39,15 +40,26 @@ export function SoloPanelPage({ queryParams }: Props) {
return <PageLoader />;
}
return <SoloPanelRenderer dashboard={dashboard} panelId={queryParams.panelId} />;
return (
<UrlSyncContextProvider scene={dashboard}>
<SoloPanelRenderer dashboard={dashboard} panelId={queryParams.panelId} />
</UrlSyncContextProvider>
);
}
export default SoloPanelPage;
export function SoloPanelRenderer({ dashboard, panelId }: { dashboard: DashboardScene; panelId: string }) {
const [panel, error] = useSoloPanel(dashboard, panelId);
const { controls } = dashboard.useState();
const refreshPicker = controls?.useState()?.refreshPicker;
const styles = useStyles2(getStyles);
useEffect(() => {
return refreshPicker?.activate();
}, [refreshPicker]);
if (error) {
return <Alert title={error} />;
}

Loading…
Cancel
Save