feat(extension): Add extension for chart header (#34678)

This commit is contained in:
JUST.in DO IT
2025-08-13 14:40:42 -07:00
committed by GitHub
parent ecfb9f7d7c
commit bce476c4a2
2 changed files with 50 additions and 11 deletions

View File

@@ -31,6 +31,7 @@ import {
useTheme,
QueryFormData,
JsonObject,
getExtensionsRegistry,
} from '@superset-ui/core';
import ChartContainer from 'src/components/Chart/ChartContainer';
import {
@@ -50,6 +51,9 @@ import { ChartPills } from '../ChartPills';
import { ExploreAlert } from '../ExploreAlert';
import useResizeDetectorByObserver from './useResizeDetectorByObserver';
const extensionsRegistry = getExtensionsRegistry();
const DefaultHeader: React.FC = ({ children }) => <>{children}</>;
export interface ExploreChartPanelProps {
actions: {
setForceQuery: (force: boolean) => void;
@@ -149,6 +153,9 @@ const ExploreChartPanel = ({
width: chartPanelWidth,
height: chartPanelHeight,
} = useResizeDetectorByObserver();
const ChartHeaderExtension =
extensionsRegistry.get('explore.chart.header') ?? DefaultHeader;
const [splitSizes, setSplitSizes] = useState<PanelSizes>(
isFeatureEnabled(FeatureFlag.DatapanelClosedByDefault)
? INITIAL_SIZES
@@ -367,16 +374,29 @@ const ExploreChartPanel = ({
`}
/>
)}
<ChartPills
<ChartHeaderExtension
chartId={chart.id}
queriesResponse={chart.queriesResponse}
sliceFormData={slice?.form_data ?? null}
queryFormData={formData}
lastRendered={chart.lastRendered}
latestQueryFormData={chart.latestQueryFormData}
chartUpdateEndTime={chart.chartUpdateEndTime ?? 0}
chartUpdateStartTime={chart.chartUpdateStartTime}
chartUpdateEndTime={chart.chartUpdateEndTime ?? undefined}
refreshCachedQuery={refreshCachedQuery}
rowLimit={formData?.row_limit ?? undefined}
{...(chart.queriesResponse && {
queriesResponse: chart.queriesResponse,
})}
{...(chart.chartStatus && { chartStatus: chart.chartStatus })}
/>
queryController={chart.queryController}
triggerQuery={chart.triggerQuery}
>
<ChartPills
chartUpdateStartTime={chart.chartUpdateStartTime}
chartUpdateEndTime={chart.chartUpdateEndTime ?? 0}
refreshCachedQuery={refreshCachedQuery}
rowLimit={formData?.row_limit ?? 0}
{...(chart.queriesResponse && {
queriesResponse: chart.queriesResponse,
})}
{...(chart.chartStatus && { chartStatus: chart.chartStatus })}
/>
</ChartHeaderExtension>
{renderChart()}
</div>
),