16
16
* SPDX-License-Identifier: Apache-2.0
17
17
*/
18
18
19
- import React , { ChangeEvent , PureComponent } from 'react' ;
19
+ import React , { PureComponent } from 'react' ;
20
20
import { LegacyForms } from '@grafana/ui' ;
21
- import { DataSourcePluginOptionsEditorProps } from '@grafana/data' ;
21
+ import {
22
+ DataSourcePluginOptionsEditorProps ,
23
+ onUpdateDatasourceJsonDataOption ,
24
+ onUpdateDatasourceSecureJsonDataOption ,
25
+ updateDatasourcePluginResetOption ,
26
+ } from '@grafana/data' ;
22
27
import { PixieDataSourceOptions , PixieSecureDataSourceOptions } from './types' ;
23
28
24
29
const { FormField, SecretFormField } = LegacyForms ;
@@ -28,94 +33,19 @@ interface Props extends DataSourcePluginOptionsEditorProps<PixieDataSourceOption
28
33
interface State { }
29
34
30
35
export class ConfigEditor extends PureComponent < Props , State > {
31
- onAPIKeyChange = ( event : ChangeEvent < HTMLInputElement > ) => {
32
- const { onOptionsChange, options } = this . props ;
33
-
34
- onOptionsChange ( {
35
- ...options ,
36
- secureJsonData : {
37
- ...options ?. secureJsonData ,
38
- apiKey : event . target . value ,
39
- } ,
40
- } ) ;
41
- } ;
42
-
43
- onClusterIdChange = ( event : ChangeEvent < HTMLInputElement > ) => {
44
- const { onOptionsChange, options } = this . props ;
45
-
46
- onOptionsChange ( {
47
- ...options ,
48
- secureJsonData : {
49
- ...options ?. secureJsonData ,
50
- clusterId : event . target . value ,
51
- } ,
52
- } ) ;
53
- } ;
54
-
55
- onCloudAddrChange = ( event : ChangeEvent < HTMLInputElement > ) => {
56
- const { onOptionsChange, options } = this . props ;
57
-
58
- onOptionsChange ( {
59
- ...options ,
60
- secureJsonData : {
61
- ...options ?. secureJsonData ,
62
- cloudAddr : event . target . value ,
63
- } ,
64
- } ) ;
65
- } ;
66
-
67
36
onResetAPIKey = ( ) => {
68
- const { onOptionsChange, options } = this . props ;
69
-
70
- onOptionsChange ( {
71
- ...options ,
72
- secureJsonFields : {
73
- ...options . secureJsonFields ,
74
- apiKey : false ,
75
- } ,
76
- secureJsonData : {
77
- ...options . secureJsonData ,
78
- apiKey : '' ,
79
- } ,
80
- } ) ;
37
+ updateDatasourcePluginResetOption ( this . props , 'apiKey' ) ;
81
38
} ;
82
39
83
40
onResetClusterId = ( ) => {
84
- const { onOptionsChange, options } = this . props ;
85
-
86
- onOptionsChange ( {
87
- ...options ,
88
- secureJsonFields : {
89
- ...options . secureJsonFields ,
90
- clusterId : false ,
91
- } ,
92
- secureJsonData : {
93
- ...options . secureJsonData ,
94
- clusterId : '' ,
95
- } ,
96
- } ) ;
97
- } ;
98
-
99
- onResetCloudAddr = ( ) => {
100
- const { onOptionsChange, options } = this . props ;
101
-
102
- onOptionsChange ( {
103
- ...options ,
104
- secureJsonFields : {
105
- ...options . secureJsonFields ,
106
- cloudAddr : false ,
107
- } ,
108
- secureJsonData : {
109
- ...options . secureJsonData ,
110
- cloudAddr : '' ,
111
- } ,
112
- } ) ;
41
+ updateDatasourcePluginResetOption ( this . props , 'clusterId' ) ;
113
42
} ;
114
43
115
44
render ( ) {
116
45
const { options } = this . props ;
117
46
const { secureJsonFields } = options ;
118
47
const secureJsonData = ( options . secureJsonData || { } ) as PixieSecureDataSourceOptions ;
48
+ const jsonData = ( options . jsonData || { } ) as PixieDataSourceOptions ;
119
49
120
50
return (
121
51
< div className = "gf-form-group" >
@@ -129,7 +59,7 @@ export class ConfigEditor extends PureComponent<Props, State> {
129
59
labelWidth = { 20 }
130
60
inputWidth = { 20 }
131
61
onReset = { this . onResetAPIKey }
132
- onChange = { this . onAPIKeyChange }
62
+ onChange = { onUpdateDatasourceSecureJsonDataOption ( this . props , 'apiKey' ) }
133
63
/>
134
64
</ div >
135
65
</ div >
@@ -144,21 +74,20 @@ export class ConfigEditor extends PureComponent<Props, State> {
144
74
labelWidth = { 20 }
145
75
inputWidth = { 20 }
146
76
onReset = { this . onResetClusterId }
147
- onChange = { this . onClusterIdChange }
77
+ onChange = { onUpdateDatasourceSecureJsonDataOption ( this . props , 'clusterId' ) }
148
78
/>
149
79
</ div >
150
80
</ div >
151
81
152
82
< div className = "gf-form-inline" >
153
83
< div className = "gf-form" >
154
84
< FormField
155
- value = { secureJsonData . cloudAddr || '' }
156
- label = "Pixie Cloud address (if not using withpixie .ai)"
157
- placeholder = "withpixie .ai:443"
85
+ value = { jsonData . cloudAddr || '' }
86
+ label = "Pixie Cloud address (if not using getcosmic .ai)"
87
+ placeholder = "getcosmic .ai:443"
158
88
labelWidth = { 20 }
159
89
inputWidth = { 20 }
160
- onReset = { this . onResetCloudAddr }
161
- onChange = { this . onCloudAddrChange }
90
+ onChange = { onUpdateDatasourceJsonDataOption ( this . props , 'cloudAddr' ) }
162
91
/>
163
92
</ div >
164
93
</ div >
0 commit comments