import React, { useRef } from 'react'; import { MonacoQueryFieldLazy } from './MonacoQueryFieldLazy'; import { Props as MonacoProps } from './MonacoQueryFieldProps'; type Props = Omit & { onChange: (query: string) => void; onRunQuery: () => void; runQueryOnBlur: boolean; }; export const MonacoQueryFieldWrapper = (props: Props) => { const lastRunValueRef = useRef(null); const { runQueryOnBlur, onRunQuery, onChange, ...rest } = props; const handleRunQuery = (value: string) => { lastRunValueRef.current = value; onChange(value); onRunQuery(); }; const handleBlur = (value: string) => { if (runQueryOnBlur) { // run handleRunQuery only if the current value is different from the last-time-executed value if (value !== lastRunValueRef.current) { handleRunQuery(value); } } else { onChange(value); } }; return ; };