@@ -110,23 +110,18 @@ export type IndexFlowSectionProps = {
110110 collectionName : string ;
111111 onErrorEncountered : ( error : string ) => void ;
112112 onErrorCleared : ( ) => void ;
113- onCoveredQueriesFetched : ( {
114- coveredQueries,
115- optimalQueries,
116- showCoveredQueries,
117- } : CoveredQueriesFetchedProps ) => void ;
118- coveredQueriesObj : {
119- coveredQueries : JSX . Element | null ;
120- optimalQueries : string | JSX . Element | null ;
121- showCoveredQueries : boolean ;
122- } ;
113+ onCoveredQueriesFetched : ( { fields } : CoveredQueriesFetchedProps ) => void ;
114+ coveredQueriesArr : Array < Record < string , number > > | null ;
123115 hasIndexFieldChanges : boolean ;
124116} ;
125117
126118export const generateCoveredQueries = (
127- coveredQueriesArr : Array < Record < string , number > > ,
119+ coveredQueriesArr : Array < Record < string , number > > | null ,
128120 track : TrackFunction
129121) => {
122+ if ( ! coveredQueriesArr ) {
123+ return ;
124+ }
130125 const rows = [ ] ;
131126 for ( let i = 0 ; i < coveredQueriesArr . length ; i ++ ) {
132127 const currentRow = Object . assign ( { } , ...coveredQueriesArr . slice ( 0 , i + 1 ) ) ;
@@ -150,8 +145,11 @@ export const generateCoveredQueries = (
150145} ;
151146
152147export const generateOptimalQueries = (
153- coveredQueriesArr : Array < Record < string , number > >
148+ coveredQueriesArr : Array < Record < string , number > > | null
154149) => {
150+ if ( ! coveredQueriesArr ) {
151+ return ;
152+ }
155153 const numOfFields = coveredQueriesArr . length ;
156154
157155 // Do not show for 1 field or less
@@ -215,8 +213,7 @@ const IndexFlowSection = ({
215213 onErrorEncountered,
216214 onErrorCleared,
217215 onCoveredQueriesFetched,
218- coveredQueriesObj,
219-
216+ coveredQueriesArr,
220217 hasIndexFieldChanges,
221218} : IndexFlowSectionProps ) => {
222219 const darkMode = useDarkMode ( ) ;
@@ -244,17 +241,13 @@ const IndexFlowSection = ({
244241 ) ;
245242
246243 const onCoveredQueriesButtonClick = useCallback ( ( ) => {
247- const coveredQueriesArr = generateCoveredQueriesArr ( fields ) ;
248-
249244 track ( 'Covered Queries Button Clicked' , {
250245 context : 'Create Index Modal' ,
251246 } ) ;
252247
253248 try {
254249 onCoveredQueriesFetched ( {
255- coveredQueries : generateCoveredQueries ( coveredQueriesArr , track ) ,
256- optimalQueries : generateOptimalQueries ( coveredQueriesArr ) ,
257- showCoveredQueries : true ,
250+ fields,
258251 } ) ;
259252 } catch ( e ) {
260253 onErrorEncountered ( e instanceof Error ? e . message : String ( e ) ) ;
@@ -265,8 +258,9 @@ const IndexFlowSection = ({
265258 onErrorCleared ( ) ;
266259 } , [ fields , onErrorCleared ] ) ;
267260
268- const { coveredQueries, optimalQueries, showCoveredQueries } =
269- coveredQueriesObj ;
261+ const coveredQueries = generateCoveredQueries ( coveredQueriesArr , track ) ;
262+ const optimalQueries = generateOptimalQueries ( coveredQueriesArr ) ;
263+ const showCoveredQueries = coveredQueriesArr !== null ;
270264
271265 return (
272266 < div >
@@ -431,9 +425,9 @@ const IndexFlowSection = ({
431425} ;
432426
433427const mapState = ( { createIndex } : RootState ) => {
434- const { coveredQueriesObj , hasIndexFieldChanges } = createIndex ;
428+ const { coveredQueriesArr , hasIndexFieldChanges } = createIndex ;
435429 return {
436- coveredQueriesObj ,
430+ coveredQueriesArr ,
437431 hasIndexFieldChanges,
438432 } ;
439433} ;
0 commit comments