@@ -12,7 +12,7 @@ import {
1212 InfoSprinkle ,
1313 Tooltip ,
1414} from '@mongodb-js/compass-components' ;
15- import React , { useState , useCallback } from 'react' ;
15+ import React , { useState , useCallback , useEffect } from 'react' ;
1616import type { Field } from '../../modules/create-index' ;
1717import MDBCodeViewer from './mdb-code-viewer' ;
1818import { areAllFieldsFilledIn } from '../../utils/create-index-modal-validation' ;
@@ -152,13 +152,16 @@ const IndexFlowSection = ({
152152} : IndexFlowSectionProps ) => {
153153 const [ isCodeEquivalentToggleChecked , setIsCodeEquivalentToggleChecked ] =
154154 useState ( false ) ;
155+ const [ hasFieldChanges , setHasFieldChanges ] = useState ( false ) ;
155156
156157 const hasUnsupportedQueryTypes = fields . some ( ( field ) => {
157158 return field . type === '2dsphere' || field . type === 'text' ;
158159 } ) ;
159160
160161 const isCoveredQueriesButtonDisabled =
161- ! areAllFieldsFilledIn ( fields ) || hasUnsupportedQueryTypes ;
162+ ! areAllFieldsFilledIn ( fields ) ||
163+ hasUnsupportedQueryTypes ||
164+ ! hasFieldChanges ;
162165
163166 const indexNameTypeMap = fields . reduce < Record < string , string > > (
164167 ( accumulator , currentValue ) => {
@@ -190,6 +193,11 @@ const IndexFlowSection = ({
190193 optimalQueries : generateOptimalQueries ( coveredQueriesArr ) ,
191194 showCoveredQueries : true ,
192195 } ) ;
196+ setHasFieldChanges ( false ) ;
197+ } , [ fields ] ) ;
198+
199+ useEffect ( ( ) => {
200+ setHasFieldChanges ( true ) ;
193201 } , [ fields ] ) ;
194202
195203 const { coveredQueries, optimalQueries, showCoveredQueries } =
0 commit comments