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

This commit is contained in:
Juan Cabanas 2025-01-06 10:13:11 -03:00 committed by GitHub
parent 88f8f2203b
commit 4631707276
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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} />;
}