diff --git a/.release-please-manifest.json b/.release-please-manifest.json index beaff2e0a4..e9e2e7e8df 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "9.6.3" + ".": "9.6.3-hotfix.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 10574dbd0b..3afda9d04c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [9.6.3-hotfix.1](https://github.com/ydb-platform/ydb-embedded-ui/compare/v9.6.3...v9.6.3-hotfix.1) (2025-06-19) + + +### Bug Fixes + +* **HealthcheckPreview:** use only one query ([#2427](https://github.com/ydb-platform/ydb-embedded-ui/issues/2427)) ([0089133](https://github.com/ydb-platform/ydb-embedded-ui/commit/00891339a9ae22518ffa5a331c0605227584cd02)) +* **Tenant:** support name param ([8103bb6](https://github.com/ydb-platform/ydb-embedded-ui/commit/8103bb68b1faccafc93ac569dc18d7e0be756801)) + ## [9.6.3](https://github.com/ydb-platform/ydb-embedded-ui/compare/v9.6.2...v9.6.3) (2025-06-17) diff --git a/package-lock.json b/package-lock.json index 71ff97eed8..c01181e72e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ydb-embedded-ui", - "version": "9.6.3", + "version": "9.6.3-hotfix.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ydb-embedded-ui", - "version": "9.6.3", + "version": "9.6.3-hotfix.1", "dependencies": { "@bem-react/classname": "^1.6.0", "@ebay/nice-modal-react": "^1.2.13", diff --git a/package.json b/package.json index 64e7c81f41..2b7b5d0240 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ydb-embedded-ui", - "version": "9.6.3", + "version": "9.6.3-hotfix.1", "files": [ "dist" ], diff --git a/release-please-config.json b/release-please-config.json index d9072d2f59..1d6ba29c91 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -5,6 +5,8 @@ "include-component-in-tag": false, "pull-request-title-pattern": "chore(${branch}): release ${version}", "packages": { - ".": {} + ".": { + "release-as": "9.6.3-hotfix.1" + } } } diff --git a/src/containers/Tenant/Diagnostics/Diagnostics.tsx b/src/containers/Tenant/Diagnostics/Diagnostics.tsx index d8e76a5a24..3d9133a1cc 100644 --- a/src/containers/Tenant/Diagnostics/Diagnostics.tsx +++ b/src/containers/Tenant/Diagnostics/Diagnostics.tsx @@ -186,13 +186,7 @@ function Diagnostics(props: DiagnosticsProps) { }} allowNotSelected={true} /> - { - //this is needed to collect healthcheck if it is disabled by default https://github.com/ydb-platform/ydb-embedded-ui/issues/1889 - const event = new CustomEvent('diagnosticsRefresh'); - document.dispatchEvent(event); - }} - /> + ); diff --git a/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.tsx b/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.tsx index ad18e975a6..87f15901a7 100644 --- a/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.tsx +++ b/src/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import type {AlertProps} from '@gravity-ui/uikit'; import {Alert, Button, Flex, Icon, Popover, Skeleton} from '@gravity-ui/uikit'; @@ -52,36 +50,12 @@ export function HealthcheckPreview(props: HealthcheckPreviewProps) { { //FIXME https://github.com/ydb-platform/ydb-embedded-ui/issues/1889 pollingInterval: healthcheckPreviewDisabled ? undefined : autoRefreshInterval, - skip: healthcheckPreviewDisabled, }, ); - const [getHealthcheckQuery, {currentData: manualData, isFetching: isFetchingManually}] = - healthcheckApi.useLazyGetHealthcheckInfoQuery(); - - React.useEffect(() => { - if (healthcheckPreviewDisabled) { - getHealthcheckQuery({database: tenantName}); - } - }, [healthcheckPreviewDisabled, tenantName, getHealthcheckQuery]); + const loading = isFetching && data === undefined; - React.useEffect(() => { - const fetchHealthcheck = () => { - if (healthcheckPreviewDisabled) { - getHealthcheckQuery({database: tenantName}); - } - }; - document.addEventListener('diagnosticsRefresh', fetchHealthcheck); - return () => { - document.removeEventListener('diagnosticsRefresh', fetchHealthcheck); - }; - }, [tenantName, healthcheckPreviewDisabled, getHealthcheckQuery]); - - const loading = - (isFetching && data === undefined) || (isFetchingManually && manualData === undefined); - - const selfCheckResult: SelfCheckResult = - data?.self_check_result || manualData?.self_check_result || SelfCheckResult.UNSPECIFIED; + const selfCheckResult: SelfCheckResult = data?.self_check_result || SelfCheckResult.UNSPECIFIED; const modifier = selfCheckResult.toLowerCase(); diff --git a/src/containers/Tenant/Tenant.tsx b/src/containers/Tenant/Tenant.tsx index 15117085bc..8673a38aa2 100644 --- a/src/containers/Tenant/Tenant.tsx +++ b/src/containers/Tenant/Tenant.tsx @@ -43,6 +43,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), @@ -50,7 +51,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 04f6204248..040c4f0543 100644 --- a/src/containers/Tenant/useTenantQueryParams.ts +++ b/src/containers/Tenant/useTenantQueryParams.ts @@ -3,13 +3,14 @@ import React from 'react'; import {BooleanParam, StringParam, useQueryParams} from 'use-query-params'; export function useTenantQueryParams() { - const [{showHealthcheck, database, schema, view, issuesFilter}, setQueryParams] = + const [{showHealthcheck, database, schema, view, issuesFilter, name}, setQueryParams] = useQueryParams({ showHealthcheck: BooleanParam, database: StringParam, schema: StringParam, view: StringParam, issuesFilter: StringParam, + name: StringParam, }); const handleShowHealthcheckChange = React.useCallback( (value?: boolean) => { @@ -55,5 +56,6 @@ export function useTenantQueryParams() { handleHealthcheckViewChange, issuesFilter, handleIssuesFilterChange, + name, }; }