diff --git a/app/scripts/modules/core/src/pipeline/config/triggers/BaseTrigger.tsx b/app/scripts/modules/core/src/pipeline/config/triggers/BaseTrigger.tsx index 84e9ad62afb..2bc286ae842 100644 --- a/app/scripts/modules/core/src/pipeline/config/triggers/BaseTrigger.tsx +++ b/app/scripts/modules/core/src/pipeline/config/triggers/BaseTrigger.tsx @@ -27,7 +27,7 @@ export class BaseTrigger extends React.Component; export interface IPipelineTriggerConfigProps { status: string[]; trigger: IPipelineTrigger; application: Application; pipelineId: string; - triggerUpdated: (trigger: IPipelineTrigger) => void; + triggerUpdated: (trigger: IPipelineTriggerConfig) => void; } export interface IPipelineTriggerState { applications: string[]; pipelines: IPipeline[]; pipelinesLoaded: boolean; - useDefaultParameters: { [k: string]: boolean }; - userSuppliedParameters: { [k: string]: string }; } export class PipelineTrigger extends React.Component { private destroy$ = new Subject(); private statusOptions = ['successful', 'failed', 'canceled']; - constructor(props: IPipelineTriggerConfigProps) { - super(props); - - this.state = { - applications: [], - pipelines: [], - pipelinesLoaded: false, - useDefaultParameters: {}, - userSuppliedParameters: {}, - }; - } + public state: IPipelineTriggerState = { + applications: [], + pipelines: [], + pipelinesLoaded: false, + }; - public componentDidMount = () => { + public componentDidMount() { Observable.fromPromise(ApplicationReader.listApplications()) .takeUntil(this.destroy$) .subscribe( @@ -51,14 +43,18 @@ export class PipelineTrigger extends React.Component this.setState({ applications: [] }), ); - const { application } = this.props.trigger; + const { application, status } = this.props.trigger; this.onUpdateTrigger({ application: application || this.props.application.name, status: status || [], }); this.init(application); - }; + } + + public componentWillUnmount() { + this.destroy$.next(); + } private init = (application: string) => { const { pipelineId, trigger } = this.props; @@ -78,7 +74,7 @@ export class PipelineTrigger extends React.Component { + private onUpdateTrigger = (update: Partial) => { this.props.triggerUpdated && this.props.triggerUpdated({ ...this.props.trigger, @@ -129,7 +125,7 @@ export class PipelineTrigger extends React.Component) => this.onUpdateTrigger({ status: s })} + onChange={(s: Set) => this.onUpdateTrigger({ status: Array.from(s) })} /> diff --git a/app/scripts/modules/core/src/pipeline/config/triggers/webhook/WebhookTrigger.tsx b/app/scripts/modules/core/src/pipeline/config/triggers/webhook/WebhookTrigger.tsx index 18877d78111..b1e7ff77848 100644 --- a/app/scripts/modules/core/src/pipeline/config/triggers/webhook/WebhookTrigger.tsx +++ b/app/scripts/modules/core/src/pipeline/config/triggers/webhook/WebhookTrigger.tsx @@ -13,11 +13,7 @@ export interface IWebhookTriggerProps { } export class WebhookTrigger extends React.Component { - constructor(props: IWebhookTriggerProps) { - super(props); - } - - private WebhookTriggerContents() { + private WebhookTriggerContents = () => { const { trigger } = this.props; const { source, type } = trigger; const p = trigger.payloadConstraints || {}; @@ -61,7 +57,7 @@ export class WebhookTrigger extends React.Component { ); - } + }; private onUpdateTrigger = (update: any) => { this.props.triggerUpdated &&