diff --git a/packages/twenty-front/src/modules/activities/tasks/components/ObjectTasks.tsx b/packages/twenty-front/src/modules/activities/tasks/components/ObjectTasks.tsx
index 9e2dd7a4b..1aa7b3aaf 100644
--- a/packages/twenty-front/src/modules/activities/tasks/components/ObjectTasks.tsx
+++ b/packages/twenty-front/src/modules/activities/tasks/components/ObjectTasks.tsx
@@ -2,7 +2,7 @@ import styled from '@emotion/styled';
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
+import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
const StyledContainer = styled.div`
display: flex;
@@ -19,9 +19,11 @@ export const ObjectTasks = ({
}) => {
return (
-
+
-
+
);
};
diff --git a/packages/twenty-front/src/modules/activities/tasks/components/__stories__/TaskGroups.stories.tsx b/packages/twenty-front/src/modules/activities/tasks/components/__stories__/TaskGroups.stories.tsx
index aefa6f2ed..c420ac0f3 100644
--- a/packages/twenty-front/src/modules/activities/tasks/components/__stories__/TaskGroups.stories.tsx
+++ b/packages/twenty-front/src/modules/activities/tasks/components/__stories__/TaskGroups.stories.tsx
@@ -2,7 +2,7 @@ import { Meta, StoryObj } from '@storybook/react';
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
+import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
import { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
import { ObjectMetadataItemsDecorator } from '~/testing/decorators/ObjectMetadataItemsDecorator';
@@ -15,9 +15,11 @@ const meta: Meta = {
component: TaskGroups,
decorators: [
(Story) => (
-
+
-
+
),
ComponentWithRouterDecorator,
ComponentWithRecoilScopeDecorator,
diff --git a/packages/twenty-front/src/modules/activities/tasks/hooks/__tests__/useTasks.test.tsx b/packages/twenty-front/src/modules/activities/tasks/hooks/__tests__/useTasks.test.tsx
index d24485409..a01f814cf 100644
--- a/packages/twenty-front/src/modules/activities/tasks/hooks/__tests__/useTasks.test.tsx
+++ b/packages/twenty-front/src/modules/activities/tasks/hooks/__tests__/useTasks.test.tsx
@@ -4,7 +4,7 @@ import { RecoilRoot } from 'recoil';
import { useActivities } from '@/activities/hooks/useActivities';
import { useTasks } from '@/activities/tasks/hooks/useTasks';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
+import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
const tasks = [
{
@@ -46,9 +46,11 @@ jest.mock('@/activities/hooks/useActivities', () => ({
const Wrapper = ({ children }: { children: ReactNode }) => (
-
+
{children}
-
+
);
diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilter.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilter.tsx
index 481bbc8d4..1bf7e3bf8 100644
--- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilter.tsx
+++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilter.tsx
@@ -2,7 +2,7 @@ import { AdvancedFilterViewFilterFieldSelect } from '@/object-record/advanced-fi
import { AdvancedFilterViewFilterOperandSelect } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect';
import { AdvancedFilterViewFilterValueInput } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterValueInput';
import { useCurrentViewFilter } from '@/object-record/advanced-filter/hooks/useCurrentViewFilter';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
+import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
import { configurableViewFilterOperands } from '@/object-record/object-filter-dropdown/utils/configurableViewFilterOperands';
import styled from '@emotion/styled';
@@ -32,7 +32,9 @@ export const AdvancedFilterViewFilter = ({
}
return (
-
+
@@ -42,6 +44,6 @@ export const AdvancedFilterViewFilter = ({
)}
-
+
);
};
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton.tsx
index 895adf219..74f37a680 100644
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton.tsx
+++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownButton.tsx
@@ -1,4 +1,3 @@
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
@@ -33,13 +32,11 @@ export const ObjectFilterDropdownButton = ({
-
- {hasOnlyOneEntityFilter ? (
-
- ) : (
-
- )}
-
+ {hasOnlyOneEntityFilter ? (
+
+ ) : (
+
+ )}
);
};
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/__stories__/MultipleFiltersDropdownButton.stories.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/__stories__/MultipleFiltersDropdownButton.stories.tsx
index ea06072c0..f17ee84dc 100644
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/__stories__/MultipleFiltersDropdownButton.stories.tsx
+++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/__stories__/MultipleFiltersDropdownButton.stories.tsx
@@ -4,7 +4,6 @@ import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
import { CoreObjectNamePlural } from '@/object-metadata/types/CoreObjectNamePlural';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { MultipleFiltersDropdownButton } from '@/object-record/object-filter-dropdown/components/MultipleFiltersDropdownButton';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
import { RecordIndexContextProvider } from '@/object-record/record-index/contexts/RecordIndexContext';
import { RecordTableComponentInstanceContext } from '@/object-record/record-table/states/context/RecordTableComponentInstanceContext';
@@ -115,9 +114,7 @@ const meta: Meta = {
value={{ instanceId: instanceId, onColumnsChange: () => {} }}
>
-
-
-
+
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useFilterDropdownStates.ts b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useFilterDropdownStates.ts
deleted file mode 100644
index 4b530d43f..000000000
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useFilterDropdownStates.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { advancedFilterViewFilterGroupIdComponentState } from '@/object-record/object-filter-dropdown/states/advancedFilterViewFilterGroupIdComponentState';
-import { advancedFilterViewFilterIdComponentState } from '@/object-record/object-filter-dropdown/states/advancedFilterViewFilterIdComponentState';
-import { filterDefinitionUsedInDropdownComponentState } from '@/object-record/object-filter-dropdown/states/filterDefinitionUsedInDropdownComponentState';
-import { objectFilterDropdownSearchInputComponentState } from '@/object-record/object-filter-dropdown/states/objectFilterDropdownSearchInputComponentState';
-import { objectFilterDropdownSelectedOptionValuesComponentState } from '@/object-record/object-filter-dropdown/states/objectFilterDropdownSelectedOptionValuesComponentState';
-import { objectFilterDropdownSelectedRecordIdsComponentState } from '@/object-record/object-filter-dropdown/states/objectFilterDropdownSelectedRecordIdsComponentState';
-import { onFilterSelectComponentState } from '@/object-record/object-filter-dropdown/states/onFilterSelectComponentState';
-import { selectedFilterComponentState } from '@/object-record/object-filter-dropdown/states/selectedFilterComponentState';
-import { selectedOperandInDropdownComponentState } from '@/object-record/object-filter-dropdown/states/selectedOperandInDropdownComponentState';
-
-export const useFilterDropdownStates = (componentInstanceId: string) => {
- const filterDefinitionUsedInDropdownState =
- filterDefinitionUsedInDropdownComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const objectFilterDropdownSearchInputState =
- objectFilterDropdownSearchInputComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const objectFilterDropdownSelectedRecordIdsState =
- objectFilterDropdownSelectedRecordIdsComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const objectFilterDropdownSelectedOptionValuesState =
- objectFilterDropdownSelectedOptionValuesComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const selectedFilterState = selectedFilterComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const selectedOperandInDropdownState =
- selectedOperandInDropdownComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const onFilterSelectState = onFilterSelectComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const advancedFilterViewFilterGroupIdState =
- advancedFilterViewFilterGroupIdComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- const advancedFilterViewFilterIdState =
- advancedFilterViewFilterIdComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- return {
- filterDefinitionUsedInDropdownState,
- objectFilterDropdownSearchInputState,
- objectFilterDropdownSelectedRecordIdsState,
- objectFilterDropdownSelectedOptionValuesState,
- selectedFilterState,
- selectedOperandInDropdownState,
- onFilterSelectState,
- advancedFilterViewFilterGroupIdState,
- advancedFilterViewFilterIdState,
- };
-};
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts
index 53288a4bb..9134acfa8 100644
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts
+++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts
@@ -18,30 +18,37 @@ type SelectFilterParams = {
filterDefinition: FilterDefinition;
};
-export const useSelectFilterDefinitionUsedInDropdown = () => {
+export const useSelectFilterDefinitionUsedInDropdown = (
+ componentInstanceId?: string,
+) => {
const setFilterDefinitionUsedInDropdown = useSetRecoilComponentStateV2(
filterDefinitionUsedInDropdownComponentState,
+ componentInstanceId,
);
const setSelectedOperandInDropdown = useSetRecoilComponentStateV2(
selectedOperandInDropdownComponentState,
+ componentInstanceId,
);
const setObjectFilterDropdownSearchInput = useSetRecoilComponentStateV2(
objectFilterDropdownSearchInputComponentState,
+ componentInstanceId,
);
const advancedFilterViewFilterGroupId = useRecoilComponentValueV2(
advancedFilterViewFilterGroupIdComponentState,
+ componentInstanceId,
);
const advancedFilterViewFilterId = useRecoilComponentValueV2(
advancedFilterViewFilterIdComponentState,
+ componentInstanceId,
);
const setHotkeyScope = useSetHotkeyScope();
- const { applyRecordFilter } = useApplyRecordFilter();
+ const { applyRecordFilter } = useApplyRecordFilter(componentInstanceId);
const selectFilterDefinitionUsedInDropdown = ({
filterDefinition,
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSetFilterDefinitionUsedInDropdownInScope.ts b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSetFilterDefinitionUsedInDropdownInScope.ts
deleted file mode 100644
index 142f76a5d..000000000
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSetFilterDefinitionUsedInDropdownInScope.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { useRecoilCallback } from 'recoil';
-import { filterDefinitionUsedInDropdownComponentState } from '../states/filterDefinitionUsedInDropdownComponentState';
-import { FilterDefinition } from '../types/FilterDefinition';
-
-export const useSetFilterDefinitionUsedInDropdownInScope = () => {
- const setFilterDefinitionUsedInDropdownInScope = useRecoilCallback(
- ({ set }) =>
- (
- componentInstanceId: string,
- filterDefinition: FilterDefinition | null,
- ) => {
- const filterDefinitionUsedInDropdownState =
- filterDefinitionUsedInDropdownComponentState.atomFamily({
- instanceId: componentInstanceId,
- });
-
- set(filterDefinitionUsedInDropdownState, filterDefinition);
- },
- [],
- );
-
- return {
- setFilterDefinitionUsedInDropdownInScope,
- };
-};
diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope.tsx
deleted file mode 100644
index 25122ffd3..000000000
--- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ReactNode } from 'react';
-
-import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
-
-type ObjectFilterDropdownScopeProps = {
- children: ReactNode;
- filterScopeId: string;
-};
-
-export const ObjectFilterDropdownScope = ({
- children,
- filterScopeId,
-}: ObjectFilterDropdownScopeProps) => {
- return (
-
- {children}
-
- );
-};
diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts
index 1052a3852..ded8999d3 100644
--- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts
+++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts
@@ -3,7 +3,7 @@ import { v4 } from 'uuid';
import { useColumnDefinitionsFromFieldMetadata } from '@/object-metadata/hooks/useColumnDefinitionsFromFieldMetadata';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
-import { useSetFilterDefinitionUsedInDropdownInScope } from '@/object-record/object-filter-dropdown/hooks/useSetFilterDefinitionUsedInDropdownInScope';
+import { useSelectFilterDefinitionUsedInDropdown } from '@/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown';
import { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
import { getOperandsForFilterDefinition } from '@/object-record/object-filter-dropdown/utils/getOperandsForFilterType';
import { isDropdownOpenComponentState } from '@/ui/layout/dropdown/states/isDropdownOpenComponentState';
@@ -50,8 +50,8 @@ export const useHandleToggleColumnFilter = ({
const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView();
- const { setFilterDefinitionUsedInDropdownInScope } =
- useSetFilterDefinitionUsedInDropdownInScope();
+ const { selectFilterDefinitionUsedInDropdown } =
+ useSelectFilterDefinitionUsedInDropdown(viewBarId);
const handleToggleColumnFilter = useCallback(
async (fieldMetadataId: string) => {
@@ -94,10 +94,7 @@ export const useHandleToggleColumnFilter = ({
await upsertCombinedViewFilter(newFilter);
- setFilterDefinitionUsedInDropdownInScope(
- newFilter.id,
- filterDefinition,
- );
+ selectFilterDefinitionUsedInDropdown({ filterDefinition });
}
openDropdown(existingViewFilter?.id ?? newFilterId);
@@ -106,7 +103,7 @@ export const useHandleToggleColumnFilter = ({
openDropdown,
columnDefinitions,
upsertCombinedViewFilter,
- setFilterDefinitionUsedInDropdownInScope,
+ selectFilterDefinitionUsedInDropdown,
currentViewWithCombinedFiltersAndSorts,
availableFilterDefinitions,
],
diff --git a/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx b/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx
index e605e3936..724ed7d6c 100644
--- a/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx
+++ b/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx
@@ -3,7 +3,7 @@ import { ReactNode, useMemo } from 'react';
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
import { AddObjectFilterFromDetailsButton } from '@/object-record/object-filter-dropdown/components/AddObjectFilterFromDetailsButton';
-import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
+import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
import { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
import { useHandleToggleTrashColumnFilter } from '@/object-record/record-index/hooks/useHandleToggleTrashColumnFilter';
import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
@@ -226,9 +226,9 @@ export const ViewBarDetails = ({
defaultViewFilters,
availableFilterDefinitions,
).map((viewFilter) => (
-
@@ -240,7 +240,7 @@ export const ViewBarDetails = ({
viewFilterDropdownId={viewFilter.id}
/>
-
+
))}
{hasFilterButton && (