From f35ea2a3bc617f63b5eb586e9a9588cc49f17c1e Mon Sep 17 00:00:00 2001 From: imbajin Date: Sun, 12 Jul 2026 14:44:08 +0800 Subject: [PATCH 1/4] fix(hubble): harden frontend validation --- .../analysis/QueryBar/ContentCommon/index.js | 5 +- .../QueryBar/ContentCommon/index.test.js | 62 +++++++++++++++++++ .../navigation/ConsoleItem/index.test.js | 12 ++++ .../src/modules/navigation/Item/index.js | 10 +++ .../modules/navigation/Item/index.module.scss | 7 +++ hugegraph-hubble/hubble-fe/src/utils/rules.js | 19 +++++- .../hubble-fe/src/utils/rules.test.js | 12 ++++ 7 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.test.js diff --git a/hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js b/hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js index 46195c1cd..a06e2d034 100644 --- a/hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js +++ b/hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js @@ -27,6 +27,7 @@ import {UpOutlined, DownOutlined, QuestionCircleOutlined} from '@ant-design/icon import {GREMLIN_EXECUTES_MODE} from '../../../../utils/constants'; import GraphAnalysisContext from '../../../Context'; import classnames from 'classnames'; +import {isValidFavoriteName} from '../../../../utils/rules'; import c from './index.module.scss'; import * as api from '../../../../api/index'; import KeyboardAction from '../../../../components/KeyboardAction'; @@ -139,7 +140,7 @@ const ContentCommon = props => { e => { const favoriteName = e.target.value; setFavoriteName(favoriteName); - favoriteName ? setDisabledFavorite(false) : setDisabledFavorite(true); + setDisabledFavorite(!isValidFavoriteName(favoriteName)); }, [] ); @@ -152,6 +153,8 @@ const ContentCommon = props => { maxLength={48} value={favoriteName} onChange={onChangeFavoraiteName} + status={favoriteName && !isValidFavoriteName(favoriteName) + ? 'error' : undefined} />