Skip to content

Commit e2274a6

Browse files
authored
fix(aci): Automation triggers can be null (#94234)
1 parent 10fba2b commit e2274a6

File tree

3 files changed

+45
-34
lines changed

3 files changed

+45
-34
lines changed

static/app/types/workflowEngine/automations.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export interface NewAutomation {
66
detectorIds: string[];
77
environment: string | null;
88
name: string;
9-
triggers: DataConditionGroup;
9+
triggers: DataConditionGroup | null;
1010
disabled?: boolean;
1111
}
1212

static/app/views/automations/components/conditionsPanel.tsx

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,26 @@ import {useAvailableActionsQuery} from 'sentry/views/automations/hooks';
2121

2222
type ConditionsPanelProps = {
2323
actionFilters: DataConditionGroup[];
24-
triggers: DataConditionGroup;
24+
triggers: DataConditionGroup | null;
2525
};
2626

2727
function ConditionsPanel({triggers, actionFilters}: ConditionsPanelProps) {
2828
return (
2929
<Panel>
30-
<ConditionGroupWrapper>
31-
<ConditionGroupHeader>
32-
{tct('[when:When] any of the following occur', {
33-
when: <ConditionBadge />,
34-
})}
35-
</ConditionGroupHeader>
36-
{triggers.conditions.map((trigger, index) => (
37-
<div key={index}>
38-
<DataConditionDetails condition={trigger} />
39-
</div>
40-
))}
41-
</ConditionGroupWrapper>
30+
{triggers && (
31+
<ConditionGroupWrapper>
32+
<ConditionGroupHeader>
33+
{tct('[when:When] any of the following occur', {
34+
when: <ConditionBadge />,
35+
})}
36+
</ConditionGroupHeader>
37+
{triggers.conditions.map((trigger, index) => (
38+
<div key={index}>
39+
<DataConditionDetails condition={trigger} />
40+
</div>
41+
))}
42+
</ConditionGroupWrapper>
43+
)}
4244
{actionFilters.map((actionFilter, index) => (
4345
<div key={index}>
4446
<ActionFilter actionFilter={actionFilter} totalFilters={actionFilters.length} />

static/app/views/automations/detail.tsx

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {Button} from 'sentry/components/core/button';
55
import {LinkButton} from 'sentry/components/core/button/linkButton';
66
import {Flex} from 'sentry/components/core/layout';
77
import {DateTime} from 'sentry/components/dateTime';
8+
import ErrorBoundary from 'sentry/components/errorBoundary';
89
import {KeyValueTable, KeyValueTableRow} from 'sentry/components/keyValueTable';
910
import LoadingError from 'sentry/components/loadingError';
1011
import LoadingIndicator from 'sentry/components/loadingIndicator';
@@ -69,10 +70,14 @@ export default function AutomationDetail() {
6970
<DetailLayout>
7071
<DetailLayout.Main>
7172
<Section title={t('History')}>
72-
<AutomationHistoryList history={[]} />
73+
<ErrorBoundary mini>
74+
<AutomationHistoryList history={[]} />
75+
</ErrorBoundary>
7376
</Section>
7477
<Section title={t('Connected Monitors')}>
75-
<ConnectedMonitorsList monitors={detectors} />
78+
<ErrorBoundary mini>
79+
<ConnectedMonitorsList monitors={detectors} />
80+
</ErrorBoundary>
7681
</Section>
7782
</DetailLayout.Main>
7883
<DetailLayout.Sidebar>
@@ -97,26 +102,30 @@ export default function AutomationDetail() {
97102
})}
98103
</Section>
99104
<Section title={t('Conditions')}>
100-
<ConditionsPanel
101-
triggers={automation.triggers}
102-
actionFilters={automation.actionFilters}
103-
/>
105+
<ErrorBoundary mini>
106+
<ConditionsPanel
107+
triggers={automation.triggers}
108+
actionFilters={automation.actionFilters}
109+
/>
110+
</ErrorBoundary>
104111
</Section>
105112
<Section title={t('Details')}>
106-
<KeyValueTable>
107-
<KeyValueTableRow
108-
keyName={t('Date created')}
109-
value={<DateTime date={automation.dateCreated} dateOnly year />}
110-
/>
111-
<KeyValueTableRow
112-
keyName={t('Created by')}
113-
value={createdByUser?.name || createdByUser?.email || t('Unknown')}
114-
/>
115-
<KeyValueTableRow
116-
keyName={t('Last modified')}
117-
value={<TimeSince date={automation.dateUpdated} />}
118-
/>
119-
</KeyValueTable>
113+
<ErrorBoundary mini>
114+
<KeyValueTable>
115+
<KeyValueTableRow
116+
keyName={t('Date created')}
117+
value={<DateTime date={automation.dateCreated} dateOnly year />}
118+
/>
119+
<KeyValueTableRow
120+
keyName={t('Created by')}
121+
value={createdByUser?.name || createdByUser?.email || t('Unknown')}
122+
/>
123+
<KeyValueTableRow
124+
keyName={t('Last modified')}
125+
value={<TimeSince date={automation.dateUpdated} />}
126+
/>
127+
</KeyValueTable>
128+
</ErrorBoundary>
120129
</Section>
121130
</DetailLayout.Sidebar>
122131
</DetailLayout>

0 commit comments

Comments
 (0)