diff --git a/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationHeader.tsx b/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationHeader.tsx index 7ca2d4630d4..f6acf54caae 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationHeader.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationHeader.tsx @@ -79,7 +79,16 @@ export const OperationHeader = React.memo( if (value.value) { // Operation should exist if it is selectable const newDef = queryModeller.getOperationDef(value.value.id)!; - let changedOp = { ...operation, id: value.value.id }; + + // copy default params, and override with all current params + const newParams = [...newDef.defaultParams]; + for (let i = 0; i < Math.min(operation.params.length, newParams.length); i++) { + if (newDef.params[i].type === def.params[i].type) { + newParams[i] = operation.params[i]; + } + } + + const changedOp = { ...operation, params: newParams, id: value.value.id }; onChange(index, def.changeTypeHandler ? def.changeTypeHandler(changedOp, newDef) : changedOp); } }}