1616 * SPDX-License-Identifier: Apache-2.0
1717 */
1818
19- import React , { ChangeEvent , PureComponent } from 'react' ;
19+ import React , { PureComponent } from 'react' ;
2020import { LegacyForms } from '@grafana/ui' ;
21- import { DataSourcePluginOptionsEditorProps } from '@grafana/data' ;
21+ import {
22+ DataSourcePluginOptionsEditorProps ,
23+ onUpdateDatasourceJsonDataOption ,
24+ onUpdateDatasourceSecureJsonDataOption ,
25+ updateDatasourcePluginResetOption ,
26+ } from '@grafana/data' ;
2227import { PixieDataSourceOptions , PixieSecureDataSourceOptions } from './types' ;
2328
2429const { FormField, SecretFormField } = LegacyForms ;
@@ -28,94 +33,19 @@ interface Props extends DataSourcePluginOptionsEditorProps<PixieDataSourceOption
2833interface State { }
2934
3035export 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-
6736 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' ) ;
8138 } ;
8239
8340 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' ) ;
11342 } ;
11443
11544 render ( ) {
11645 const { options } = this . props ;
11746 const { secureJsonFields } = options ;
11847 const secureJsonData = ( options . secureJsonData || { } ) as PixieSecureDataSourceOptions ;
48+ const jsonData = ( options . jsonData || { } ) as PixieDataSourceOptions ;
11949
12050 return (
12151 < div className = "gf-form-group" >
@@ -129,7 +59,7 @@ export class ConfigEditor extends PureComponent<Props, State> {
12959 labelWidth = { 20 }
13060 inputWidth = { 20 }
13161 onReset = { this . onResetAPIKey }
132- onChange = { this . onAPIKeyChange }
62+ onChange = { onUpdateDatasourceSecureJsonDataOption ( this . props , 'apiKey' ) }
13363 />
13464 </ div >
13565 </ div >
@@ -144,21 +74,20 @@ export class ConfigEditor extends PureComponent<Props, State> {
14474 labelWidth = { 20 }
14575 inputWidth = { 20 }
14676 onReset = { this . onResetClusterId }
147- onChange = { this . onClusterIdChange }
77+ onChange = { onUpdateDatasourceSecureJsonDataOption ( this . props , 'clusterId' ) }
14878 />
14979 </ div >
15080 </ div >
15181
15282 < div className = "gf-form-inline" >
15383 < div className = "gf-form" >
15484 < 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"
15888 labelWidth = { 20 }
15989 inputWidth = { 20 }
160- onReset = { this . onResetCloudAddr }
161- onChange = { this . onCloudAddrChange }
90+ onChange = { onUpdateDatasourceJsonDataOption ( this . props , 'cloudAddr' ) }
16291 />
16392 </ div >
16493 </ div >
0 commit comments