@@ -15,6 +15,8 @@ import { WrapperPage } from '../../common/components/wrapper_page';
1515import { useKibana } from '../../common/lib/kibana' ;
1616import { SpyRoute } from '../../common/utils/route/spy_routes' ;
1717import { useApolloClient } from '../../common/utils/apollo_context' ;
18+ import { useWithSource } from '../../common/containers/source' ;
19+ import { OverviewEmpty } from '../../overview/components/overview_empty' ;
1820
1921import { StatefulOpenTimeline } from '../components/open_timeline' ;
2022import { NEW_TEMPLATE_TIMELINE } from '../components/timeline/properties/translations' ;
@@ -36,61 +38,71 @@ export const TimelinesPageComponent: React.FC = () => {
3638 const onImportTimelineBtnClick = useCallback ( ( ) => {
3739 setImportDataModalToggle ( true ) ;
3840 } , [ setImportDataModalToggle ] ) ;
41+ const { indicesExist } = useWithSource ( ) ;
3942
4043 const apolloClient = useApolloClient ( ) ;
41- const uiCapabilities = useKibana ( ) . services . application . capabilities ;
42- const capabilitiesCanUserCRUD : boolean = ! ! uiCapabilities . siem . crud ;
44+ const capabilitiesCanUserCRUD : boolean = ! ! useKibana ( ) . services . application . capabilities . siem
45+ . crud ;
4346
4447 return (
4548 < >
46- < WrapperPage >
47- < HeaderPage border title = { i18n . PAGE_TITLE } >
48- < EuiFlexGroup gutterSize = "s" alignItems = "center" >
49- < EuiFlexItem >
50- { capabilitiesCanUserCRUD && (
51- < EuiButton
52- iconType = "indexOpen"
53- onClick = { onImportTimelineBtnClick }
54- data-test-subj = "open-import-data-modal-btn"
55- >
56- { i18n . ALL_TIMELINES_IMPORT_TIMELINE_TITLE }
57- </ EuiButton >
58- ) }
59- </ EuiFlexItem >
60- { tabName === TimelineType . default ? (
61- < EuiFlexItem >
62- { capabilitiesCanUserCRUD && (
63- < NewTimeline
64- timelineId = "timeline-1"
65- outline = { true }
66- data-test-subj = "create-default-btn"
67- />
49+ { indicesExist ? (
50+ < >
51+ < WrapperPage >
52+ < HeaderPage border title = { i18n . PAGE_TITLE } >
53+ < EuiFlexGroup gutterSize = "s" alignItems = "center" >
54+ < EuiFlexItem >
55+ { capabilitiesCanUserCRUD && (
56+ < EuiButton
57+ iconType = "indexOpen"
58+ onClick = { onImportTimelineBtnClick }
59+ data-test-subj = "open-import-data-modal-btn"
60+ >
61+ { i18n . ALL_TIMELINES_IMPORT_TIMELINE_TITLE }
62+ </ EuiButton >
63+ ) }
64+ </ EuiFlexItem >
65+ { tabName === TimelineType . default ? (
66+ < EuiFlexItem >
67+ { capabilitiesCanUserCRUD && (
68+ < NewTimeline
69+ timelineId = "timeline-1"
70+ outline = { true }
71+ data-test-subj = "create-default-btn"
72+ />
73+ ) }
74+ </ EuiFlexItem >
75+ ) : (
76+ < EuiFlexItem >
77+ < NewTemplateTimeline
78+ outline = { true }
79+ title = { NEW_TEMPLATE_TIMELINE }
80+ data-test-subj = "create-template-btn"
81+ />
82+ </ EuiFlexItem >
6883 ) }
69- </ EuiFlexItem >
70- ) : (
71- < EuiFlexItem >
72- < NewTemplateTimeline
73- outline = { true }
74- title = { NEW_TEMPLATE_TIMELINE }
75- data-test-subj = "create-template-btn"
76- />
77- </ EuiFlexItem >
78- ) }
79- </ EuiFlexGroup >
80- </ HeaderPage >
84+ </ EuiFlexGroup >
85+ </ HeaderPage >
8186
82- < TimelinesContainer >
83- < StatefulOpenTimeline
84- apolloClient = { apolloClient ! }
85- defaultPageSize = { DEFAULT_SEARCH_RESULTS_PER_PAGE }
86- isModal = { false }
87- importDataModalToggle = { importDataModalToggle && capabilitiesCanUserCRUD }
88- setImportDataModalToggle = { setImportDataModalToggle }
89- title = { i18n . ALL_TIMELINES_PANEL_TITLE }
90- data-test-subj = "stateful-open-timeline"
91- />
92- </ TimelinesContainer >
93- </ WrapperPage >
87+ < TimelinesContainer >
88+ < StatefulOpenTimeline
89+ apolloClient = { apolloClient ! }
90+ defaultPageSize = { DEFAULT_SEARCH_RESULTS_PER_PAGE }
91+ isModal = { false }
92+ importDataModalToggle = { importDataModalToggle && capabilitiesCanUserCRUD }
93+ setImportDataModalToggle = { setImportDataModalToggle }
94+ title = { i18n . ALL_TIMELINES_PANEL_TITLE }
95+ data-test-subj = "stateful-open-timeline"
96+ />
97+ </ TimelinesContainer >
98+ </ WrapperPage >
99+ </ >
100+ ) : (
101+ < WrapperPage >
102+ < HeaderPage border title = { i18n . PAGE_TITLE } />
103+ < OverviewEmpty />
104+ </ WrapperPage >
105+ ) }
94106
95107 < SpyRoute pageName = { SecurityPageName . timelines } />
96108 </ >
0 commit comments