This is an automated email from the ASF dual-hosted git repository. shuai pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/answer.git
commit a678946032d2913eeadd6e66c4e7285881f0d657 Author: Dinesht04 <[email protected]> AuthorDate: Tue Oct 14 20:06:46 2025 +0530 fix(ui): Adjust tag input label for quantity --- i18n/en_US.yaml | 2 ++ ui/src/components/TagSelector/index.tsx | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/i18n/en_US.yaml b/i18n/en_US.yaml index d7b56d8c..146cd0af 100644 --- a/i18n/en_US.yaml +++ b/i18n/en_US.yaml @@ -1182,6 +1182,8 @@ ui: create_btn: Create new tag search_tag: Search tag hint: "Describe what your content is about, at least one tag is required." + hint_zero_tags: " Describe what your content is about." + hint_more_than_one_tag: "Describe what your content is about, at least {{ min_tags_number }} tags are required." no_result: No tags matched tag_required_text: Required tag (at least one) header: diff --git a/ui/src/components/TagSelector/index.tsx b/ui/src/components/TagSelector/index.tsx index c7425947..94e95325 100644 --- a/ui/src/components/TagSelector/index.tsx +++ b/ui/src/components/TagSelector/index.tsx @@ -29,6 +29,8 @@ import classNames from 'classnames'; import { useTagModal, useToast } from '@/hooks'; import type * as Type from '@/common/interface'; import { queryTags, useUserPermission } from '@/services'; +import { writeSettingStore } from '@/stores'; + // import { OutsideClickListener } from '@/components'; import './index.scss'; @@ -72,6 +74,7 @@ const TagSelector: FC<IProps> = ({ const [searchValue, setSearchValue] = useState<string>(''); const [tags, setTags] = useState<Type.Tag[] | null>([]); const [requiredTags, setRequiredTags] = useState<Type.Tag[] | null>(null); + const writeInfo = writeSettingStore((state) => state.write); const { t } = useTranslation('translation', { keyPrefix: 'tag_selector' }); const { data: userPermission } = useUserPermission('tag.add'); const canAddTag = @@ -292,6 +295,20 @@ const TagSelector: FC<IProps> = ({ } }; + const handleTagHint = () => { + if (!writeInfo || writeInfo.min_tags === undefined || !writeInfo.min_tags) { + return t(`hint_zero_tags`); + } + + if (writeInfo.min_tags === 1) { + return t(`hint`); + } + + let str: string = t(`hint_more_than_one_tag`); + str = str.replace(`{{ min_tags_number }}`, writeInfo.min_tags.toString()); + return str; + }; + useEffect(() => { if (canAddTag) { const tagArray: Type.Tag[] = filterTags(requiredTags); @@ -461,7 +478,9 @@ const TagSelector: FC<IProps> = ({ )} </Dropdown.Menu> </div> - {!hiddenDescription && <Form.Text>{formText || t('hint')}</Form.Text>} + {!hiddenDescription && ( + <Form.Text>{formText || handleTagHint()}</Form.Text> + )} <Form.Control.Feedback type="invalid">{errMsg}</Form.Control.Feedback> </div> );
