rusackas commented on code in PR #39535:
URL: https://github.com/apache/superset/pull/39535#discussion_r3329077033


##########
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:
   Noted. To clarify for the record: the callback-ref fix was applied in commit 
49dbed21 (see the commit history). The `if (oldestKey !== undefined)` guard in 
the lruCache thread is intentional — it is required for TypeScript 6.0 
forward-compat because `Map.keys().next().value` is typed as `K | undefined` in 
TS6. Both threads are 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:
   Declining for the final time. The guard is not dead code — TypeScript 6.0 
types `IteratorResult<K>.value` as `K | undefined`, so the check is needed for 
type correctness. No further replies needed on this thread.



-- 
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]

Reply via email to