Skip to content

Commit d4c4a00

Browse files
committed
4.0.5 fix issue with nothing in feedback selected
1 parent 192aa0e commit d4c4a00

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "anodot-datasource",
3-
"version": "4.0.4",
3+
"version": "4.0.5",
44
"description": "Anodot Grafana Datasource for anodot-panel plugin",
55
"scripts": {
66
"build": "grafana-toolkit plugin:build",

src/Alerts/QueryEditor.tsx

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React, { useCallback, useEffect, useState } from 'react';
22
import FormSelect from '../components/FormField/FormSelect';
33
import { alertAcknowledgeOptions, alertTypesOptions, feedbackOptions, severityOptions } from '../utils/constants';
44
import { AlertsQuery, ScenarioProps } from '../types';
@@ -12,6 +12,12 @@ export const defaultAlertsQuery: Partial<AlertsQuery> = {
1212
feedback: [],
1313
};
1414

15+
enum FeedbacksEnums {
16+
noFeedback = 'noFeedback',
17+
positiveFeedback = 'positiveFeedback',
18+
negativeFeedback = 'negativeFeedback',
19+
}
20+
1521
const AlertsQueryEditor = (props: ScenarioProps<AlertsQuery>) => {
1622
const { onRunQuery, datasource, onFormChange } = props;
1723
const [subscribersOptions, setSubscribers] = useState<SelectableValue[]>([]);
@@ -36,6 +42,19 @@ const AlertsQueryEditor = (props: ScenarioProps<AlertsQuery>) => {
3642
});
3743
}, []);
3844

45+
const onFeedbackChange = useCallback((currentMultiValues, selected) => {
46+
const selectedValue = selected?.option?.value;
47+
if (selectedValue) {
48+
if (selectedValue === FeedbacksEnums.noFeedback) {
49+
currentMultiValues = [selected?.option];
50+
}
51+
if ([FeedbacksEnums.positiveFeedback, FeedbacksEnums.negativeFeedback].includes(selectedValue)) {
52+
currentMultiValues = currentMultiValues.filter((v) => v.value !== FeedbacksEnums.noFeedback);
53+
}
54+
}
55+
return onFormChange('feedback', currentMultiValues, true);
56+
}, []);
57+
3958
return (
4059
<>
4160
<div className="gf-form gf-form--grow">
@@ -76,12 +95,7 @@ const AlertsQueryEditor = (props: ScenarioProps<AlertsQuery>) => {
7695
label={'Feedback'}
7796
value={query.feedback}
7897
options={feedbackOptions}
79-
onChange={(currentMultiValues, { option }) => {
80-
if (option?.value === 'noFeedback') {
81-
currentMultiValues = [option];
82-
}
83-
return onFormChange('feedback', currentMultiValues, true);
84-
}}
98+
onChange={onFeedbackChange}
8599
/>
86100
</div>
87101
<div className="gf-form-inline">

src/components/FunctionsControl.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ const FunctionsControl = ({ functionsConfigs, selectedFunctions = {}, onChangeFu
145145
groupByPropertiesList={groupByPropertiesList}
146146
/>
147147
))}
148-
<Button disabled={!availableFunctions.length || 'new' in selectedFunctions} onClick={onAdd}>
148+
<Button
149+
style={{ width: 112 }}
150+
disabled={!availableFunctions.length || 'new' in selectedFunctions}
151+
onClick={onAdd}
152+
>
149153
+ {Object.keys(selectedFunctions).length > 0 && 'Child '}Function
150154
</Button>
151155
</>

0 commit comments

Comments
 (0)