fix from rebase

This commit is contained in:
Paul Marbach
2025-12-04 16:08:25 -05:00
parent cee3b34cf7
commit b8600a43db
3 changed files with 28 additions and 21 deletions
@@ -92,7 +92,7 @@ export class PanelDataPane extends SceneObjectBase<PanelDataPaneState> {
public setQueryLibraryMode = (mode: QueryLibraryMode & { index: number | null }) => { public setQueryLibraryMode = (mode: QueryLibraryMode & { index: number | null }) => {
this.setState({ queryLibraryMode: mode }); this.setState({ queryLibraryMode: mode });
} };
public getUrlState() { public getUrlState() {
return { tab: this.state.tab }; return { tab: this.state.tab };
@@ -112,7 +112,6 @@ export class PanelDataPane extends SceneObjectBase<PanelDataPaneState> {
} }
} }
function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) { function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) {
const { tabs, selectedQueryTransform, panelRef, transformPickerIndex, queryLibraryMode } = model.useState(); const { tabs, selectedQueryTransform, panelRef, transformPickerIndex, queryLibraryMode } = model.useState();
const styles = useStyles2(getStyles); const styles = useStyles2(getStyles);
@@ -139,11 +138,14 @@ function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) {
// Auto-select first item if nothing is selected // Auto-select first item if nothing is selected
const selectedId = useMemo(() => { const selectedId = useMemo(() => {
if (transformPickerIndex != null) {
return null;
}
if (selectedQueryTransform === null && allItems.length > 0) { if (selectedQueryTransform === null && allItems.length > 0) {
return allItems[0].id; return allItems[0].id;
} }
return selectedQueryTransform; return selectedQueryTransform;
}, [selectedQueryTransform, allItems]); }, [transformPickerIndex, selectedQueryTransform, allItems]);
const selectedItem = useMemo(() => allItems.find((item) => item.id === selectedId), [allItems, selectedId]); const selectedItem = useMemo(() => allItems.find((item) => item.id === selectedId), [allItems, selectedId]);
@@ -198,10 +200,13 @@ function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) {
); );
// Handler for saving a query to the query library (stub) // Handler for saving a query to the query library (stub)
const handleQueryLibrarySave = useCallback((_name: string, _description: string) => { const handleQueryLibrarySave = useCallback(
// Stub: In real implementation, this would save to the query library (_name: string, _description: string) => {
model.setQueryLibraryMode({ active: false, mode: 'browse', index: null }); // Stub: In real implementation, this would save to the query library
}, [model]); model.setQueryLibraryMode({ active: false, mode: 'browse', index: null });
},
[model]
);
// Handler to close the query library view // Handler to close the query library view
const handleQueryLibraryClose = useCallback(() => { const handleQueryLibraryClose = useCallback(() => {
@@ -210,13 +215,10 @@ function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) {
// Handler to open query library in a specific mode // Handler to open query library in a specific mode
const handleOpenQueryLibrary = useCallback( const handleOpenQueryLibrary = useCallback(
(mode: QueryLibraryMode["mode"], index?: number) => { (mode: QueryLibraryMode['mode'], index?: number) => {
let currentQuery: SceneDataQuery | undefined; let currentQuery: SceneDataQuery | undefined;
if ( if (mode === 'save' && (selectedItem?.type === 'query' || selectedItem?.type === 'expression')) {
mode === 'save' &&
(selectedItem?.type === 'query' || selectedItem?.type === 'expression')
) {
currentQuery = selectedItem.data; currentQuery = selectedItem.data;
} }
@@ -321,7 +323,7 @@ function PanelDataPaneRendered({ model }: SceneComponentProps<PanelDataPane>) {
onQueryLibrarySave={handleQueryLibrarySave} onQueryLibrarySave={handleQueryLibrarySave}
onQueryLibraryClose={handleQueryLibraryClose} onQueryLibraryClose={handleQueryLibraryClose}
onOpenQueryLibrary={handleOpenQueryLibrary} onOpenQueryLibrary={handleOpenQueryLibrary}
/> />
</div> </div>
</div> </div>
); );
@@ -76,11 +76,14 @@ export function PanelDataSidebarRendered({ model }: SceneComponentProps<PanelDat
// Auto-select first item if nothing is selected // Auto-select first item if nothing is selected
const selectedId = useMemo(() => { const selectedId = useMemo(() => {
if (transformPickerIndex != null) {
return null;
}
if (selectedQueryTransform === null && allItems.length > 0) { if (selectedQueryTransform === null && allItems.length > 0) {
return allItems[0].id; return allItems[0].id;
} }
return selectedQueryTransform; return selectedQueryTransform;
}, [selectedQueryTransform, allItems]); }, [transformPickerIndex, selectedQueryTransform, allItems]);
const selectedItem = useMemo(() => allItems.find((item) => item.id === selectedId), [allItems, selectedId]); const selectedItem = useMemo(() => allItems.find((item) => item.id === selectedId), [allItems, selectedId]);
const updateQuerySelectionOnStateChange = useCallback( const updateQuerySelectionOnStateChange = useCallback(
@@ -176,13 +179,10 @@ export function PanelDataSidebarRendered({ model }: SceneComponentProps<PanelDat
); );
const handleOpenQueryLibrary = useCallback( const handleOpenQueryLibrary = useCallback(
(mode: QueryLibraryMode["mode"], index?: number) => { (mode: QueryLibraryMode['mode'], index?: number) => {
let currentQuery: SceneDataQuery | undefined; let currentQuery: SceneDataQuery | undefined;
if ( if (mode === 'save' && (selectedItem?.type === 'query' || selectedItem?.type === 'expression')) {
mode === 'save' &&
(selectedItem?.type === 'query' || selectedItem?.type === 'expression')
) {
currentQuery = selectedItem.data; currentQuery = selectedItem.data;
} }
@@ -305,7 +305,8 @@ export function PanelDataSidebarRendered({ model }: SceneComponentProps<PanelDat
selectedId={selectedId} selectedId={selectedId}
onCollapseSidebar={() => model.onCollapseSidebar(true)} onCollapseSidebar={() => model.onCollapseSidebar(true)}
onSelect={(id) => { onSelect={(id) => {
model.onChangeSelected(id) model.onChangeSelected(id);
model.onTransformPicker(null);
}} }}
onAddQuery={handleAddQuery} onAddQuery={handleAddQuery}
onAddFromSavedQueries={(index) => handleOpenQueryLibrary('browse', index)} onAddFromSavedQueries={(index) => handleOpenQueryLibrary('browse', index)}
@@ -346,7 +347,10 @@ export function PanelDataSidebarRendered({ model }: SceneComponentProps<PanelDat
transformItems={transformItems} transformItems={transformItems}
selectedId={selectedId} selectedId={selectedId}
onCollapseSidebar={() => model.onCollapseSidebar(true)} onCollapseSidebar={() => model.onCollapseSidebar(true)}
onSelect={(newSelectedId) => model.onChangeSelected(newSelectedId)} onSelect={(newSelectedId) => {
model.onChangeSelected(newSelectedId);
model.onTransformPicker(null);
}}
onAddQuery={handleAddQuery} onAddQuery={handleAddQuery}
onAddFromSavedQueries={(index) => handleOpenQueryLibrary('browse', index)} onAddFromSavedQueries={(index) => handleOpenQueryLibrary('browse', index)}
onAddTransform={(index) => { onAddTransform={(index) => {
@@ -527,6 +527,7 @@ export const QueryTransformList = memo(
onAddTransform={onAddTransform} onAddTransform={onAddTransform}
onAddExpression={onAddExpression} onAddExpression={onAddExpression}
allowedTypes={['transform']} allowedTypes={['transform']}
index={0}
text={t('dashboard-scene.query-transform-list.add', 'Add')} text={t('dashboard-scene.query-transform-list.add', 'Add')}
/> />
))} ))}