diff --git a/src/containers/Tenant/Tenant.tsx b/src/containers/Tenant/Tenant.tsx index 8666398c81..bb897af5ff 100644 --- a/src/containers/Tenant/Tenant.tsx +++ b/src/containers/Tenant/Tenant.tsx @@ -44,6 +44,7 @@ interface TenantProps { additionalNodesProps?: AdditionalNodesProps; } +// eslint-disable-next-line complexity export function Tenant(props: TenantProps) { const [summaryVisibilityState, dispatchSummaryVisibilityAction] = React.useReducer( paneVisibilityToggleReducerCreator(DEFAULT_IS_TENANT_SUMMARY_COLLAPSED), @@ -51,7 +52,16 @@ export function Tenant(props: TenantProps) { getTenantSummaryState, ); - const {database, schema} = useTenantQueryParams(); + // TODO: name is used together with database to keep old links valid, do not remove + const {database: queryDatabase, schema, name, handleDatabaseChange} = useTenantQueryParams(); + + React.useEffect(() => { + if (name && !queryDatabase) { + handleDatabaseChange(name); + } + }, [queryDatabase, name, handleDatabaseChange]); + + const database = queryDatabase ?? name; if (!database) { throw new Error('Tenant name is not defined'); diff --git a/src/containers/Tenant/useTenantQueryParams.ts b/src/containers/Tenant/useTenantQueryParams.ts index 1f4c677e81..c6ed23a16e 100644 --- a/src/containers/Tenant/useTenantQueryParams.ts +++ b/src/containers/Tenant/useTenantQueryParams.ts @@ -4,9 +4,10 @@ import {BooleanParam, StringParam, useQueryParams} from 'use-query-params'; export function useTenantQueryParams() { const [ - {showHealthcheck, database, schema, view, issuesFilter, showGrantAccess, aclSubject}, + {showHealthcheck, database, schema, view, issuesFilter, showGrantAccess, aclSubject, name}, setQueryParams, ] = useQueryParams({ + name: StringParam, showHealthcheck: BooleanParam, database: StringParam, schema: StringParam, @@ -75,5 +76,6 @@ export function useTenantQueryParams() { handleIssuesFilterChange, aclSubject, handleAclSubjectChange, + name, }; }