mirror of
https://github.com/apache/superset.git
synced 2026-06-02 06:09:21 +00:00
fix(explore): make clicked dnd filters unique (#16700)
This commit is contained in:
@@ -45,10 +45,12 @@ import AdhocMetric from 'src/explore/components/controls/MetricControl/AdhocMetr
|
||||
import {
|
||||
DatasourcePanelDndItem,
|
||||
DndItemValue,
|
||||
isSavedMetric,
|
||||
} from 'src/explore/components/DatasourcePanel/types';
|
||||
import { DndItemType } from 'src/explore/components/DndItemType';
|
||||
import { ControlComponentProps } from 'src/explore/components/Control';
|
||||
|
||||
const EMPTY_OBJECT = {};
|
||||
const DND_ACCEPTED_TYPES = [
|
||||
DndItemType.Column,
|
||||
DndItemType.Metric,
|
||||
@@ -78,7 +80,9 @@ export const DndFilterSelect = (props: DndFilterSelectProps) => {
|
||||
);
|
||||
const [partitionColumn, setPartitionColumn] = useState(undefined);
|
||||
const [newFilterPopoverVisible, setNewFilterPopoverVisible] = useState(false);
|
||||
const [droppedItem, setDroppedItem] = useState<DndItemValue | null>(null);
|
||||
const [droppedItem, setDroppedItem] = useState<
|
||||
DndItemValue | typeof EMPTY_OBJECT
|
||||
>({});
|
||||
|
||||
const optionsForSelect = (
|
||||
columns: ColumnMeta[],
|
||||
@@ -342,12 +346,12 @@ export const DndFilterSelect = (props: DndFilterSelectProps) => {
|
||||
);
|
||||
|
||||
const handleClickGhostButton = useCallback(() => {
|
||||
setDroppedItem(null);
|
||||
setDroppedItem({});
|
||||
togglePopover(true);
|
||||
}, [togglePopover]);
|
||||
|
||||
const adhocFilter = useMemo(() => {
|
||||
if (droppedItem?.metric_name) {
|
||||
if (isSavedMetric(droppedItem)) {
|
||||
return new AdhocFilter({
|
||||
expressionType: EXPRESSION_TYPES.SQL,
|
||||
clause: CLAUSES.HAVING,
|
||||
|
||||
Reference in New Issue
Block a user