/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { EuiComboBox } from '@elastic/eui';
import React, { useState, useEffect, memo } from 'react';
export const IndexPicker = memo(function indexDropdown(props: any) {
return ;
});
interface Fetch {
dslService: any;
query: any;
handleQueryChange: (query: string, index: string) => void;
}
export function SearchIndex(options: Fetch) {
const [indicesFromBackend, setindicesFromBackend] = useState([]);
// fetch indices from backend
const getIndices = async (dslService: any) => {
if (indicesFromBackend.length === 0) {
const indices = (await dslService.fetchIndices()).filter(
({ index }) => !index.startsWith('.')
);
for (let i = 0; i < indices.length; i++) {
indicesFromBackend.push({
label: indices[i].index,
});
}
}
};
useEffect(() => {
getIndices(options.dslService);
}, []);
const [selectedOptions, setSelected] = useState(
[]
);
// handle Index Change
const onChange = (selectedOptions) => {
options.handleQueryChange(options.query, selectedOptions);
setSelected(selectedOptions);
};
return (
onChange(e)}
/>
);
}