diff --git a/src/components/popper-menu/popper-menu-item.tsx b/src/components/popper-menu/popper-menu-item.tsx
index 594e888db..79c9f137c 100644
--- a/src/components/popper-menu/popper-menu-item.tsx
+++ b/src/components/popper-menu/popper-menu-item.tsx
@@ -6,7 +6,7 @@ import { Icon, TIcons } from '@ui/icon'
export interface IPopperMenuItemProps {
iconName?: TIcons
className?: Argument
- onClick?: () => void
+ onClick?: (event: any) => void
isDisabled?: boolean
}
diff --git a/src/pages/filter/refiner/components/right-column/condition-modal-options-button.tsx b/src/pages/filter/refiner/components/right-column/condition-modal-options-button.tsx
new file mode 100644
index 000000000..638532c86
--- /dev/null
+++ b/src/pages/filter/refiner/components/right-column/condition-modal-options-button.tsx
@@ -0,0 +1,30 @@
+import { ReactElement } from 'react'
+
+import { Button } from '@ui/button'
+import { Icon } from '@ui/icon'
+
+interface IProps {
+ refEl: any
+ onClick?: () => void
+}
+
+export const ConditionModalOptionsButton = ({
+ refEl,
+ ...rest
+}: IProps): ReactElement => {
+ return (
+
+ }
+ onMouseUp={e => e.stopPropagation()}
+ />
+ )
+}
diff --git a/src/pages/filter/refiner/components/right-column/condition-modal-options-popup.tsx b/src/pages/filter/refiner/components/right-column/condition-modal-options-popup.tsx
index 8e70a828a..4df81c6d7 100644
--- a/src/pages/filter/refiner/components/right-column/condition-modal-options-popup.tsx
+++ b/src/pages/filter/refiner/components/right-column/condition-modal-options-popup.tsx
@@ -1,26 +1,22 @@
-import { ReactElement, useRef } from 'react'
+import { ReactElement } from 'react'
import { copyToClipboard } from '@core/copy-to-clipboard'
-import { useOutsideClick } from '@core/hooks/use-outside-click'
import { t } from '@i18n'
+import filterStore from '@store/filter'
import { Icon } from '@ui/icon'
import { DecisionTreeModalDataCy } from '@components/data-testid/decision-tree-modal.cy'
+import {
+ IPopperMenuProps,
+ PopperMenu,
+} from '@components/popper-menu/popper-menu'
+import { PopperMenuItem } from '@components/popper-menu/popper-menu-item'
import { showToast } from '@utils/notifications/showToast'
-interface IConditionModalOptionsPopup {
- onClose: () => void
- onDeleteCondition: () => void
- filterName: string
-}
-
export const ConditionModalOptionsPopup = ({
- onClose,
- onDeleteCondition,
- filterName,
-}: IConditionModalOptionsPopup): ReactElement => {
- const ref = useRef(null)
-
- useOutsideClick(ref, () => onClose())
+ close,
+}: IPopperMenuProps): ReactElement => {
+ const { selectedConditionIndex, conditions } = filterStore
+ const filterName = conditions[selectedConditionIndex]?.[1] ?? ''
const handleCopyFilterName = (e: React.MouseEvent) => {
e.stopPropagation()
@@ -29,37 +25,38 @@ export const ConditionModalOptionsPopup = ({
showToast(t('ds.copied'), 'info')
- onClose()
+ close()
}
const handleDeleteFilterBlock = (e: React.MouseEvent) => {
e.stopPropagation()
- onDeleteCondition()
+ filterStore.removeCondition(selectedConditionIndex)
+ close()
}
return (
-
-
-
-
{t('filter.delete')}
+
+
+
+ {t('filter.delete')}
+
-
-
{t('filter.copy')}
+
+
+ {t('filter.copy')}
-
-
+
+
)
}
diff --git a/src/pages/filter/refiner/components/right-column/query-results.tsx b/src/pages/filter/refiner/components/right-column/query-results.tsx
index a7b1624ef..b2079abe8 100644
--- a/src/pages/filter/refiner/components/right-column/query-results.tsx
+++ b/src/pages/filter/refiner/components/right-column/query-results.tsx
@@ -40,8 +40,6 @@ export const QueryResults = observer((): ReactElement => {
filterStore.selectCondition(index)}
- onDelete={() => filterStore.removeCondition(index)}
/>
))}
diff --git a/src/pages/filter/refiner/components/right-column/selected-filter-card.tsx b/src/pages/filter/refiner/components/right-column/selected-filter-card.tsx
index ef34fdc8f..d24effb23 100644
--- a/src/pages/filter/refiner/components/right-column/selected-filter-card.tsx
+++ b/src/pages/filter/refiner/components/right-column/selected-filter-card.tsx
@@ -4,7 +4,9 @@ import { observer } from 'mobx-react-lite'
import { FilterKindEnum } from '@core/enum/filter-kind.enum'
import { useToggle } from '@core/hooks/use-toggle'
+import filterStore from '@store/filter'
import { Icon } from '@ui/icon'
+import { PopperButton } from '@components/popper-button'
import { ConditionJoinMode } from '@service-providers/common'
import {
TCondition,
@@ -12,6 +14,7 @@ import {
TNumericConditionBounds,
} from '@service-providers/common/common.interface'
import { AllNotModeLabel } from './all-not-mode-label'
+import { ConditionModalOptionsButton } from './condition-modal-options-button'
import { ConditionModalOptionsPopup } from './condition-modal-options-popup'
import { EnumFilter } from './enum-filter'
import { FuncFilter } from './func-filter'
@@ -19,18 +22,13 @@ import { NumericFilter } from './numeric-filter'
interface ISelectedFilterCardProps {
isActive: boolean
- onSelect: () => void
- onDelete: () => void
condition: TCondition
}
export const SelectedFilterCard = observer(
- ({
- isActive,
- onSelect,
- onDelete,
- condition,
- }: ISelectedFilterCardProps): ReactElement => {
+ ({ isActive, condition }: ISelectedFilterCardProps): ReactElement => {
+ const { selectedConditionIndex } = filterStore
+
// TODO: mobx warning for out of bounds read from condition
// not all of conditions have 3rd and 4th value
const filterType: string = condition[0]
@@ -45,28 +43,19 @@ export const SelectedFilterCard = observer(
const [isFilterContentVisible, showFilterContent, hideFilterContent] =
useToggle(true)
- const [isModalOptionsVisible, showModalOptions, hideModalOptions] =
- useToggle(false)
-
const toggleFilterContentVisibility = (event: React.MouseEvent) => {
event.stopPropagation()
isFilterContentVisible ? hideFilterContent() : showFilterContent()
}
- const toggleModalOptionsVisibility = (event: React.MouseEvent) => {
- event.stopPropagation()
-
- isModalOptionsVisible ? hideModalOptions() : showModalOptions()
- }
-
return (
<>
filterStore.selectCondition(selectedConditionIndex)}
>
@@ -86,20 +75,10 @@ export const SelectedFilterCard = observer(
/>
-
-
- {isModalOptionsVisible && (
-
- )}