Skip to content

Commit 6421322

Browse files
committed
Display an error toaster on newsfeed fetch failure
1 parent 797b607 commit 6421322

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

x-pack/legacy/plugins/siem/public/components/news_feed/helpers.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import moment from 'moment';
99
import uuid from 'uuid';
1010

1111
import { NewsItem, RawNewsApiItem, RawNewsApiResponse } from './types';
12-
import { throwIfNotOk } from '../../hooks/api/api';
12+
import { KibanaServices } from '../../lib/kibana';
1313

1414
/**
1515
* Removes the `-SNAPSHOT` that is sometimes appended to the Kibana version,
@@ -90,15 +90,11 @@ export const fetchNews = async ({
9090
}: {
9191
newsFeedUrl: string;
9292
}): Promise<RawNewsApiResponse> => {
93-
const response = await fetch(newsFeedUrl, {
94-
credentials: 'omit',
93+
return KibanaServices.get().http.fetch<RawNewsApiResponse>(newsFeedUrl, {
9594
method: 'GET',
95+
credentials: 'omit',
9696
mode: 'cors',
9797
});
98-
99-
await throwIfNotOk(response);
100-
101-
return response.json();
10298
};
10399

104100
/**

x-pack/legacy/plugins/siem/public/components/news_feed/index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ import chrome from 'ui/chrome';
99

1010
import { fetchNews, getNewsFeedUrl, getNewsItemsFromApiResponse } from './helpers';
1111
import { useKibana, useUiSetting$ } from '../../lib/kibana';
12+
import { errorToToaster, useStateToaster } from '../toasters';
1213
import { NewsFeed } from './news_feed';
1314
import { NewsItem } from './types';
15+
import * as i18n from './translations';
1416

1517
export const StatefulNewsFeed = React.memo<{
1618
enableNewsFeedSetting: string;
@@ -20,6 +22,7 @@ export const StatefulNewsFeed = React.memo<{
2022
const [enableNewsFeed] = useUiSetting$<boolean>(enableNewsFeedSetting);
2123
const [newsFeedUrlSetting] = useUiSetting$<string>(newsFeedSetting);
2224
const [news, setNews] = useState<NewsItem[] | null>(null);
25+
const [, dispatchToaster] = useStateToaster();
2326

2427
// respect kibana's global newsfeed.enabled setting
2528
const newsfeedEnabled = kibanaNewsfeedEnabled && enableNewsFeed;
@@ -39,7 +42,8 @@ export const StatefulNewsFeed = React.memo<{
3942
if (!canceled) {
4043
setNews(getNewsItemsFromApiResponse(apiResponse));
4144
}
42-
} catch {
45+
} catch (error) {
46+
errorToToaster({ title: i18n.NEWSFEED_FETCH_ERROR, error, dispatchToaster });
4347
if (!canceled) {
4448
setNews([]);
4549
}

x-pack/legacy/plugins/siem/public/components/news_feed/translations.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ export const NO_NEWS_MESSAGE = i18n.translate('xpack.siem.newsFeed.noNewsMessage
1111
'Your current news feed URL returned no recent news. You may update the URL or disable security news via',
1212
});
1313

14+
export const NEWSFEED_FETCH_ERROR = i18n.translate('xpack.siem.newsFeed.fetchErrorMessage', {
15+
defaultMessage: 'There was an error retrieving the news feed.',
16+
});
17+
1418
export const ADVANCED_SETTINGS_LINK_TITLE = i18n.translate(
1519
'xpack.siem.newsFeed.advancedSettingsLinkTitle',
1620
{

0 commit comments

Comments
 (0)