Skip to content

Commit 47d9f8d

Browse files
committed
updated state to be an object and changed to useCallback for button click
1 parent 175ebaa commit 47d9f8d

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
InfoSprinkle,
1313
Tooltip,
1414
} from '@mongodb-js/compass-components';
15-
import React, { useState } from 'react';
15+
import React, { useState, useCallback } from 'react';
1616
import type { Field } from '../../modules/create-index';
1717
import MDBCodeViewer from './mdb-code-viewer';
1818

@@ -173,25 +173,30 @@ const IndexFlowSection = ({
173173
{}
174174
);
175175

176-
const coveredQueriesArr = fields.map((field, index) => {
177-
return { [field.name]: index + 1 };
176+
const [coveredQueriesObj, setCoveredQueriesObj] = useState<{
177+
coveredQueries: JSX.Element;
178+
optimalQueries: string | JSX.Element;
179+
showCoveredQueries: boolean;
180+
}>({
181+
coveredQueries: <></>,
182+
optimalQueries: '',
183+
showCoveredQueries: false,
178184
});
179185

180-
const [coveredQueriesExamples, setCoveredQueriesExamples] =
181-
useState<JSX.Element>(<></>);
182-
const [optimalQueriesExamples, setOptimalQueriesExamples] = useState<
183-
string | JSX.Element
184-
>('');
185-
const [showCoveredQueries, setShowCoveredQueries] = useState(false);
186+
const onCoveredQueriesButtonClick = useCallback(() => {
187+
const coveredQueriesArr = fields.map((field, index) => {
188+
return { [field.name]: index + 1 };
189+
});
186190

187-
const onCoveredQueriesButtonClick = () => {
188-
generateCoveredQueries(coveredQueriesArr);
189-
generateOptimalQueries(coveredQueriesArr);
191+
setCoveredQueriesObj({
192+
coveredQueries: generateCoveredQueries(coveredQueriesArr),
193+
optimalQueries: generateOptimalQueries(coveredQueriesArr),
194+
showCoveredQueries: true,
195+
});
196+
}, [fields]);
190197

191-
setCoveredQueriesExamples(generateCoveredQueries(coveredQueriesArr));
192-
setOptimalQueriesExamples(generateOptimalQueries(coveredQueriesArr));
193-
setShowCoveredQueries(true);
194-
};
198+
const { coveredQueries, optimalQueries, showCoveredQueries } =
199+
coveredQueriesObj;
195200

196201
return (
197202
<div>
@@ -280,10 +285,10 @@ const IndexFlowSection = ({
280285
className={codeStyles}
281286
data-testid="index-flow-section-covered-queries-examples"
282287
>
283-
{coveredQueriesExamples}
288+
{coveredQueries}
284289
</Body>
285290

286-
{!!optimalQueriesExamples && (
291+
{!!optimalQueries && (
287292
<>
288293
<p>
289294
<span className={underlineStyles}>
@@ -295,7 +300,7 @@ const IndexFlowSection = ({
295300
className={codeStyles}
296301
data-testid="index-flow-section-optimal-queries-examples"
297302
>
298-
{optimalQueriesExamples}
303+
{optimalQueries}
299304
</Body>
300305
</p>
301306
<Link href="https://www.mongodb.com/docs/manual/core/query-optimization/">

0 commit comments

Comments
 (0)