Copilot commented on code in PR #11161:
URL: https://github.com/apache/gravitino/pull/11161#discussion_r3271758926


##########
web-v2/web/src/app/catalogs/rightContent/entitiesContent/FunctionDetailsPage.js:
##########
@@ -268,16 +276,28 @@ export default function FunctionDetailsPage() {
           <div className='max-h-[60vh] overflow-auto'>
             <Tabs
               data-refer='details-tabs'
-              defaultActiveKey={'Definitions'}
-              items={[{ label: 'Definitions', key: 'Definitions' }]}
+              activeKey={activeTab}
+              onChange={setActiveTab}
+              items={[
+                { label: 'Definitions', key: 'Definitions' },
+                ...(anthEnable ? [{ label: 'Associated Roles', key: 
'Associated Roles' }] : [])
+              ]}
             />
-            {definitions.length === 0 ? (
-              <span className='text-slate-400'>No definitions</span>
-            ) : (
-              <Collapse
-                items={definitionItems}
-                activeKey={activeDefinitionKeys}
-                onChange={keys => setActiveDefinitionKeys(Array.isArray(keys) 
? keys : [keys])}
+            {activeTab === 'Definitions' &&
+              (definitions.length === 0 ? (
+                <span className='text-slate-400'>No definitions</span>
+              ) : (
+                <Collapse
+                  items={definitionItems}
+                  activeKey={activeDefinitionKeys}
+                  onChange={keys => 
setActiveDefinitionKeys(Array.isArray(keys) ? keys : [keys])}
+                />
+              ))}
+            {anthEnable && activeTab === 'Associated Roles' && functionName && 
(
+              <AssociatedTable
+                metalake={currentMetalake}
+                metadataObjectType={'function'}
+                metadataObjectFullName={`${catalog}.${schema}.${functionName}`}
               />
             )}

Review Comment:
   The `AssociatedTable` effect dispatches immediately and doesn’t guard 
against missing params. Here `metadataObjectFullName` is built from 
`catalog`/`schema`/`functionName`, but the render only checks `functionName`, 
so this can still call the API with `null`/`undefined` path segments (e.g., 
`null.null.func`). Guard on `currentMetalake && catalog && schema && 
functionName` (or avoid rendering until all are present).
   



##########
web-v2/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.js:
##########
@@ -540,7 +540,7 @@ export default function SchemaDetailsPage() {
         <AssociatedTable
           metalake={currentMetalake}
           metadataObjectType={'schema'}
-          metadataObjectFullName={`${catalog}.${store.activatedDetails.name}`}
+          metadataObjectFullName={`${catalog}.${store.activatedDetails?.name}`}

Review Comment:
   `metadataObjectFullName` can become `${catalog}.undefined` when 
`store.activatedDetails` (or its `name`) hasn't loaded yet. `AssociatedTable` 
dispatches `listRolesForObject` unconditionally, so this will trigger a request 
with an invalid object name. Prefer using the already-known `schema` param 
(e.g., `${catalog}.${schema}`) or guard rendering until a real schema name is 
available.
   



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

Reply via email to