/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import React, { useEffect, useState } from "react"; import { EuiFieldSearch, EuiFlexGroup, EuiFlexItem } from "@elastic/eui"; export interface SearchControlsProps { value: { search: string; }; onSearchChange: (args: SearchControlsProps["value"]) => void; } export default function SearchControls(props: SearchControlsProps) { const [state, setState] = useState(props.value); const onChange = (field: T, value: SearchControlsProps["value"][T]) => { const payload = { ...state, [field]: value, }; setState(payload); props.onSearchChange(payload); }; useEffect(() => { setState(props.value); }, [props.value]); return ( onChange("search", e.target.value)} /> ); }