@@ -14,6 +14,7 @@ import {
14
14
EuiCodeBlock ,
15
15
EuiSmallButtonEmpty ,
16
16
EuiEmptyPrompt ,
17
+ EuiPopover ,
17
18
} from '@elastic/eui' ;
18
19
import {
19
20
MapEntry ,
@@ -25,6 +26,7 @@ import {
25
26
toFormattedDate ,
26
27
} from '../../../../../common' ;
27
28
import { SourceDataModal } from './source_data_modal' ;
29
+ import { BulkPopoverContent } from './bulk_popover_content' ;
28
30
29
31
interface SourceDataProps {
30
32
workflow : Workflow | undefined ;
@@ -54,6 +56,9 @@ export function SourceData(props: SourceDataProps) {
54
56
// edit modal state
55
57
const [ isEditModalOpen , setIsEditModalOpen ] = useState < boolean > ( false ) ;
56
58
59
+ // bulk API popover state
60
+ const [ bulkPopoverOpen , setBulkPopoverOpen ] = useState < boolean > ( false ) ;
61
+
57
62
// hook to listen when the docs form value changes.
58
63
useEffect ( ( ) => {
59
64
if ( values ?. ingest ?. docs ) {
@@ -133,11 +138,49 @@ export function SourceData(props: SourceDataProps) {
133
138
</ EuiFlexGroup >
134
139
</ EuiFlexItem >
135
140
{ props . lastIngested !== undefined && (
136
- < EuiFlexItem grow = { false } >
137
- < EuiText size = "s" color = "subdued" >
138
- { `Last ingested: ${ toFormattedDate ( props . lastIngested ) } ` }
139
- </ EuiText >
140
- </ EuiFlexItem >
141
+ < >
142
+ < EuiFlexItem grow = { false } >
143
+ < EuiText size = "s" >
144
+ { `Last ingested: ${ toFormattedDate ( props . lastIngested ) } ` }
145
+ </ EuiText >
146
+ </ EuiFlexItem >
147
+ < EuiFlexItem >
148
+ < EuiFlexGroup
149
+ direction = "row"
150
+ gutterSize = "none"
151
+ justifyContent = "flexStart"
152
+ style = { { marginTop : '-8px' } }
153
+ >
154
+ < EuiFlexItem grow = { false } >
155
+ < EuiText size = "s" >
156
+ Ingest additional data with the bulk API.
157
+ </ EuiText >
158
+ </ EuiFlexItem >
159
+ < EuiFlexItem grow = { false } >
160
+ < EuiPopover
161
+ isOpen = { bulkPopoverOpen }
162
+ initialFocus = { false }
163
+ anchorPosition = "downCenter"
164
+ closePopover = { ( ) => setBulkPopoverOpen ( false ) }
165
+ button = {
166
+ < EuiSmallButtonEmpty
167
+ style = { { marginTop : '-4px' } }
168
+ onClick = { ( ) => {
169
+ setBulkPopoverOpen ( ! bulkPopoverOpen ) ;
170
+ } }
171
+ >
172
+ Learn more
173
+ </ EuiSmallButtonEmpty >
174
+ }
175
+ >
176
+ < BulkPopoverContent
177
+ indexName = { getIn ( values , 'ingest.index.name' ) }
178
+ />
179
+ </ EuiPopover >
180
+ </ EuiFlexItem >
181
+ </ EuiFlexGroup >
182
+ </ EuiFlexItem >
183
+ </ >
141
184
) }
142
185
{ docsPopulated ? (
143
186
< >
0 commit comments