korbit-ai[bot] commented on code in PR #35317:
URL: https://github.com/apache/superset/pull/35317#discussion_r2442441964
##########
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx:
##########
@@ -584,7 +584,10 @@ const FiltersConfigForm = (
return Promise.reject(new Error(t('Pre-filter is required')));
};
- const availableFilters = getAvailableFilters(filterId);
+ const availableFilters = useMemo(
+ () => getAvailableFilters(filterId),
+ [getAvailableFilters, filterId, filters],
+ );
Review Comment:
### Memoization dependency mismatch with function parameters <sub></sub>
<details>
<summary>Tell me more</summary>
###### What is the issue?
The useMemo dependency array includes `filters` but the memoized function
`getAvailableFilters(filterId)` only takes `filterId` as a parameter, creating
a potential mismatch between dependencies and actual function inputs.
###### Why this matters
This could lead to unnecessary re-computations when `filters` changes but
`getAvailableFilters` doesn't actually use the updated filters data, or
conversely, stale memoized results if `getAvailableFilters` internally depends
on filters data that isn't reflected in its parameters.
###### Suggested change ∙ *Feature Preview*
Verify that `getAvailableFilters` function signature matches its actual
dependencies. If it internally uses `filters` data, it should accept it as a
parameter:
```typescript
const availableFilters = useMemo(
() => getAvailableFilters(filterId, filters),
[getAvailableFilters, filterId, filters],
);
```
Or if `filters` is not needed, remove it from dependencies:
```typescript
const availableFilters = useMemo(
() => getAvailableFilters(filterId),
[getAvailableFilters, filterId],
);
```
###### Provide feedback to improve future suggestions
[](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c18b0ece-49a4-4ee5-bf09-f8b0ee90da58/upvote)
[](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c18b0ece-49a4-4ee5-bf09-f8b0ee90da58?what_not_true=true)
[](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c18b0ece-49a4-4ee5-bf09-f8b0ee90da58?what_out_of_scope=true)
[](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c18b0ece-49a4-4ee5-bf09-f8b0ee90da58?what_not_in_standard=true)
[](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c18b0ece-49a4-4ee5-bf09-f8b0ee90da58)
</details>
<sub>
💬 Looking for more details? Reply to this comment to chat with Korbit.
</sub>
<!--- korbi internal id:e0c66099-e590-47ee-921a-c6fce21b37e4 -->
[](e0c66099-e590-47ee-921a-c6fce21b37e4)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]