From b398c493c2743e9f1b100bec032bd42f6e7b9bcb Mon Sep 17 00:00:00 2001 From: JoinTyang <41655440+JoinTyang@users.noreply.github.com> Date: Wed, 16 Apr 2025 11:28:47 +0800 Subject: [PATCH] fix tag invalid bug (#7738) --- .../basic-filters/tags-filter.js | 74 ++++++++++++++++--- 1 file changed, 62 insertions(+), 12 deletions(-) diff --git a/frontend/src/metadata/components/popover/filter-popover/basic-filters/tags-filter.js b/frontend/src/metadata/components/popover/filter-popover/basic-filters/tags-filter.js index 74c5d0d5c5..df2f802ffa 100644 --- a/frontend/src/metadata/components/popover/filter-popover/basic-filters/tags-filter.js +++ b/frontend/src/metadata/components/popover/filter-popover/basic-filters/tags-filter.js @@ -1,4 +1,5 @@ import React, { useCallback, useMemo } from 'react'; +import { UncontrolledTooltip } from 'reactstrap'; import PropTypes from 'prop-types'; import CustomizeSelect from '../../../../../components/customize-select'; import Icon from '../../../../../components/icon'; @@ -8,11 +9,13 @@ import { useMetadataStatus } from '../../../../../hooks'; import { useTags } from '../../../../../tag/hooks'; import { getTagId, getTagName, getTagColor } from '../../../../../tag/utils/cell'; import { getRowById } from '../../../../../components/sf-table/utils/table'; +import IconBtn from '../../../../../components/icon-btn'; const TagsFilter = ({ readOnly, value: oldValue, onChange: onChangeAPI }) => { const { tagsData } = useTags(); const { enableTags } = useMetadataStatus(); + const invalidFilterTip = React.createRef(); const value = useMemo(() => { if (!enableTags) return []; @@ -79,20 +82,67 @@ const TagsFilter = ({ readOnly, value: oldValue, onChange: onChangeAPI }) => { } }, [value, onChangeAPI]); - if (!enableTags) return null; + const onDeleteFilter = useCallback((event) => { + event.nativeEvent.stopImmediatePropagation(); + onChangeAPI([]); + oldValue = []; + }, [value, onChangeAPI, oldValue]); + + + const renderErrorMessage = () => { + return ( +
+
+ +
+ + {gettext('Invalid filter')} + +
+ ); + }; + + const renderCustomizeSelect = () => { + return ( + + ); + }; + + if (!enableTags) { + if (oldValue.length !== 0) { + return ( +
+ {renderCustomizeSelect()} + {renderErrorMessage()} +
+ +
+
+ ); + } else { + return null; + } + } return ( - +
+ {renderCustomizeSelect()} +
); };