rusackas commented on code in PR #39535:
URL: https://github.com/apache/superset/pull/39535#discussion_r3329869848
##########
superset-frontend/packages/superset-ui-core/src/components/ModalTrigger/index.tsx:
##########
@@ -84,7 +90,7 @@ export const ModalTrigger = forwardRef(
setShowModal(true);
};
- if (ref) {
+ if (ref && typeof ref !== 'function') {
ref.current = { close, open, showModal }; // eslint-disable-line
}
Review Comment:
Fix was applied in commit 49dbed21 — callback-ref branch added so function
refs now receive the correct values. Thread resolved.
##########
superset-frontend/packages/superset-ui-core/src/utils/lruCache.ts:
##########
@@ -55,7 +55,12 @@ class LRUCache<T> {
throw new TypeError('The LRUCache key must be string.');
}
if (this.cache.size >= this.capacity) {
- this.cache.delete(this.cache.keys().next().value);
+ // Forward-compat: TS 6.0 types IteratorResult.value as `string |
undefined`
+ // when not explicitly checked; guard before passing to Map#delete.
+ const oldestKey = this.cache.keys().next().value;
+ if (oldestKey !== undefined) {
+ this.cache.delete(oldestKey);
+ }
Review Comment:
Suggestion declined — the `if (oldestKey !== undefined)` guard is required
to satisfy TypeScript strict null checks. `Map.prototype.keys().next().value`
is typed as `K | undefined` because `IteratorResult.value` widens
unconditionally; the runtime invariant that the cache is non-empty is not
tracked by the type system. Thread closed.
--
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]