@@ -4,18 +4,42 @@ import { DataSourcePluginOptionsEditorProps } from '@grafana/data';
44import { MqttDataSourceOptions , MqttSecureJsonData } from './types' ;
55import { handlerFactory } from './handleEvent' ;
66
7- interface Props extends DataSourcePluginOptionsEditorProps < MqttDataSourceOptions > { }
7+ interface Props extends DataSourcePluginOptionsEditorProps < MqttDataSourceOptions , MqttSecureJsonData > { }
88
99export const ConfigEditor = ( props : Props ) => {
1010 const {
1111 onOptionsChange,
1212 options,
13- options : { jsonData, secureJsonData } ,
13+ options : { jsonData, secureJsonData, secureJsonFields } ,
1414 } = props ;
1515 const { host, port, username } = jsonData ;
16- const { password } = ( secureJsonData ?? { } ) as MqttSecureJsonData ;
16+
17+ // const { password } = (secureJsonData ?? {}) as MqttSecureJsonData;
1718 const handleChange = handlerFactory ( options , onOptionsChange ) ;
1819
20+ const onPasswordChange = ( event : ChangeEvent < HTMLInputElement > ) => {
21+ onOptionsChange ( {
22+ ...options ,
23+ secureJsonData : {
24+ password : event . target . value ,
25+ } ,
26+ } ) ;
27+ } ;
28+
29+ const onResetPassword = ( ) => {
30+ onOptionsChange ( {
31+ ...options ,
32+ secureJsonFields : {
33+ ...options . secureJsonFields ,
34+ password : false ,
35+ } ,
36+ secureJsonData : {
37+ ...options . secureJsonData ,
38+ password : '' ,
39+ } ,
40+ } ) ;
41+ } ;
42+
1943 return (
2044 < Form onSubmit = { ( ) => { } } >
2145 { ( ) => (
@@ -60,12 +84,15 @@ export const ConfigEditor = (props: Props) => {
6084 name = "password"
6185 css = ""
6286 autoComplete = "off"
63- placeholder = "************************"
64- value = { password }
65- onChange = { ( event : ChangeEvent < HTMLInputElement > ) => {
66- handleChange ( 'secureJsonData.password' ) ( event ) ;
67- handleChange ( 'secureJsonFields.password' , Boolean ) ( event ) ;
68- } }
87+ // placeholder="************************"
88+ placeholder = { secureJsonFields ?. password ? 'configured' : '' }
89+ value = { secureJsonData ?. password ?? '' }
90+ onChange = { onPasswordChange }
91+ onReset = { onResetPassword }
92+ // onChange={(event: ChangeEvent<HTMLInputElement>) => {
93+ // handleChange('secureJsonData.password')(event);
94+ // handleChange('secureJsonFields.password', Boolean)(event);
95+ // }}
6996 />
7097 </ Field >
7198 </ FieldSet >
0 commit comments