@@ -25,6 +25,7 @@ import { DEFAULT_EMPTY_DATA } from '../../../utils/constants';
25
25
import { NotificationChannelTypeOptions } from '../../CreateDetector/components/ConfigureAlerts/models/interfaces' ;
26
26
import { Finding } from '../models/interfaces' ;
27
27
import { getEmptyAlertCondition } from '../../CreateDetector/components/ConfigureAlerts/utils/helpers' ;
28
+ import { validateName } from '../../../utils/validation' ;
28
29
29
30
interface CreateAlertFlyoutProps extends RouteComponentProps {
30
31
closeFlyout : ( refreshPage ?: boolean ) => void ;
@@ -42,6 +43,7 @@ interface CreateAlertFlyoutState {
42
43
loading : boolean ;
43
44
detector : Detector ;
44
45
submitting : boolean ;
46
+ isTriggerDataValid : boolean ;
45
47
}
46
48
47
49
export default class CreateAlertFlyout extends Component <
@@ -55,6 +57,7 @@ export default class CreateAlertFlyout extends Component<
55
57
loading : false ,
56
58
detector : this . props . finding . detector . _source ,
57
59
submitting : false ,
60
+ isTriggerDataValid : false ,
58
61
} ;
59
62
}
60
63
@@ -85,7 +88,10 @@ export default class CreateAlertFlyout extends Component<
85
88
} ;
86
89
87
90
onAlertConditionChange = ( newDetector : Detector ) : void => {
88
- this . setState ( { detector : { ...newDetector } } ) ;
91
+ const isTriggerDataValid = newDetector . triggers . every ( ( trigger ) => {
92
+ return ! ! trigger . name && validateName ( trigger . name ) ;
93
+ } ) ;
94
+ this . setState ( { detector : { ...newDetector } , isTriggerDataValid } ) ;
89
95
} ;
90
96
91
97
onCreate = async ( ) => {
@@ -120,7 +126,7 @@ export default class CreateAlertFlyout extends Component<
120
126
closeFlyout,
121
127
notificationChannels,
122
128
} = this . props ;
123
- const { alertCondition, loading, detector, submitting } = this . state ;
129
+ const { alertCondition, loading, detector, submitting, isTriggerDataValid } = this . state ;
124
130
const indexNum = triggers . length ;
125
131
return (
126
132
< EuiFlyout onClose = { closeFlyout } ownFocus = { true } size = { 'm' } >
@@ -159,7 +165,7 @@ export default class CreateAlertFlyout extends Component<
159
165
160
166
< EuiFlexItem grow = { false } >
161
167
< EuiButton
162
- disabled = { submitting }
168
+ disabled = { submitting || ! isTriggerDataValid }
163
169
fill = { true }
164
170
isLoading = { submitting }
165
171
onClick = { this . onCreate }
0 commit comments