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]