Clean up object record filter (#9550)
Last clean up of object dropdown filter states v1. Removed old state scope context component.
This commit is contained in:
@ -2,7 +2,7 @@ import styled from '@emotion/styled';
|
|||||||
|
|
||||||
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
||||||
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
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`
|
const StyledContainer = styled.div`
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -19,9 +19,11 @@ export const ObjectTasks = ({
|
|||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<StyledContainer>
|
<StyledContainer>
|
||||||
<ObjectFilterDropdownScope filterScopeId="entity-tasks-filter-scope">
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
|
value={{ instanceId: 'entity-tasks-filter-scope' }}
|
||||||
|
>
|
||||||
<TaskGroups targetableObjects={[targetableObject]} />
|
<TaskGroups targetableObjects={[targetableObject]} />
|
||||||
</ObjectFilterDropdownScope>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
</StyledContainer>
|
</StyledContainer>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { Meta, StoryObj } from '@storybook/react';
|
|||||||
|
|
||||||
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
||||||
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
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 { ComponentWithRecoilScopeDecorator } from '~/testing/decorators/ComponentWithRecoilScopeDecorator';
|
||||||
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
import { ComponentWithRouterDecorator } from '~/testing/decorators/ComponentWithRouterDecorator';
|
||||||
import { ObjectMetadataItemsDecorator } from '~/testing/decorators/ObjectMetadataItemsDecorator';
|
import { ObjectMetadataItemsDecorator } from '~/testing/decorators/ObjectMetadataItemsDecorator';
|
||||||
@ -15,9 +15,11 @@ const meta: Meta<typeof TaskGroups> = {
|
|||||||
component: TaskGroups,
|
component: TaskGroups,
|
||||||
decorators: [
|
decorators: [
|
||||||
(Story) => (
|
(Story) => (
|
||||||
<ObjectFilterDropdownScope filterScopeId="entity-tasks-filter-scope">
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
|
value={{ instanceId: 'entity-tasks-filter-scope' }}
|
||||||
|
>
|
||||||
<Story />
|
<Story />
|
||||||
</ObjectFilterDropdownScope>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
),
|
),
|
||||||
ComponentWithRouterDecorator,
|
ComponentWithRouterDecorator,
|
||||||
ComponentWithRecoilScopeDecorator,
|
ComponentWithRecoilScopeDecorator,
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { RecoilRoot } from 'recoil';
|
|||||||
|
|
||||||
import { useActivities } from '@/activities/hooks/useActivities';
|
import { useActivities } from '@/activities/hooks/useActivities';
|
||||||
import { useTasks } from '@/activities/tasks/hooks/useTasks';
|
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 = [
|
const tasks = [
|
||||||
{
|
{
|
||||||
@ -46,9 +46,11 @@ jest.mock('@/activities/hooks/useActivities', () => ({
|
|||||||
|
|
||||||
const Wrapper = ({ children }: { children: ReactNode }) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<RecoilRoot>
|
<RecoilRoot>
|
||||||
<ObjectFilterDropdownScope filterScopeId="entity-tasks-filter-scope">
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
|
value={{ instanceId: 'entity-tasks-filter-scope' }}
|
||||||
|
>
|
||||||
{children}
|
{children}
|
||||||
</ObjectFilterDropdownScope>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
</RecoilRoot>
|
</RecoilRoot>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { AdvancedFilterViewFilterFieldSelect } from '@/object-record/advanced-fi
|
|||||||
import { AdvancedFilterViewFilterOperandSelect } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect';
|
import { AdvancedFilterViewFilterOperandSelect } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect';
|
||||||
import { AdvancedFilterViewFilterValueInput } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterValueInput';
|
import { AdvancedFilterViewFilterValueInput } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterValueInput';
|
||||||
import { useCurrentViewFilter } from '@/object-record/advanced-filter/hooks/useCurrentViewFilter';
|
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 { configurableViewFilterOperands } from '@/object-record/object-filter-dropdown/utils/configurableViewFilterOperands';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
@ -32,7 +32,9 @@ export const AdvancedFilterViewFilter = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ObjectFilterDropdownScope filterScopeId={filter.id}>
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
|
value={{ instanceId: filter.id }}
|
||||||
|
>
|
||||||
<StyledRow>
|
<StyledRow>
|
||||||
<AdvancedFilterViewFilterFieldSelect viewFilterId={filter.id} />
|
<AdvancedFilterViewFilterFieldSelect viewFilterId={filter.id} />
|
||||||
<AdvancedFilterViewFilterOperandSelect viewFilterId={filter.id} />
|
<AdvancedFilterViewFilterOperandSelect viewFilterId={filter.id} />
|
||||||
@ -42,6 +44,6 @@ export const AdvancedFilterViewFilter = ({
|
|||||||
)}
|
)}
|
||||||
</StyledValueDropdownContainer>
|
</StyledValueDropdownContainer>
|
||||||
</StyledRow>
|
</StyledRow>
|
||||||
</ObjectFilterDropdownScope>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
import { ObjectFilterDropdownScope } from '@/object-record/object-filter-dropdown/scopes/ObjectFilterDropdownScope';
|
|
||||||
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
||||||
|
|
||||||
import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
|
import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
|
||||||
@ -33,13 +32,11 @@ export const ObjectFilterDropdownButton = ({
|
|||||||
<ObjectFilterDropdownComponentInstanceContext.Provider
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
value={{ instanceId: filterDropdownId }}
|
value={{ instanceId: filterDropdownId }}
|
||||||
>
|
>
|
||||||
<ObjectFilterDropdownScope filterScopeId={filterDropdownId}>
|
{hasOnlyOneEntityFilter ? (
|
||||||
{hasOnlyOneEntityFilter ? (
|
<SingleEntityObjectFilterDropdownButton hotkeyScope={hotkeyScope} />
|
||||||
<SingleEntityObjectFilterDropdownButton hotkeyScope={hotkeyScope} />
|
) : (
|
||||||
) : (
|
<MultipleFiltersDropdownButton hotkeyScope={hotkeyScope} />
|
||||||
<MultipleFiltersDropdownButton hotkeyScope={hotkeyScope} />
|
)}
|
||||||
)}
|
|
||||||
</ObjectFilterDropdownScope>
|
|
||||||
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import { TaskGroups } from '@/activities/tasks/components/TaskGroups';
|
|||||||
import { CoreObjectNamePlural } from '@/object-metadata/types/CoreObjectNamePlural';
|
import { CoreObjectNamePlural } from '@/object-metadata/types/CoreObjectNamePlural';
|
||||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||||
import { MultipleFiltersDropdownButton } from '@/object-record/object-filter-dropdown/components/MultipleFiltersDropdownButton';
|
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 { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
|
||||||
import { RecordIndexContextProvider } from '@/object-record/record-index/contexts/RecordIndexContext';
|
import { RecordIndexContextProvider } from '@/object-record/record-index/contexts/RecordIndexContext';
|
||||||
import { RecordTableComponentInstanceContext } from '@/object-record/record-table/states/context/RecordTableComponentInstanceContext';
|
import { RecordTableComponentInstanceContext } from '@/object-record/record-table/states/context/RecordTableComponentInstanceContext';
|
||||||
@ -115,9 +114,7 @@ const meta: Meta<typeof MultipleFiltersDropdownButton> = {
|
|||||||
value={{ instanceId: instanceId, onColumnsChange: () => {} }}
|
value={{ instanceId: instanceId, onColumnsChange: () => {} }}
|
||||||
>
|
>
|
||||||
<ViewComponentInstanceContext.Provider value={{ instanceId }}>
|
<ViewComponentInstanceContext.Provider value={{ instanceId }}>
|
||||||
<ObjectFilterDropdownScope filterScopeId={instanceId}>
|
<Story />
|
||||||
<Story />
|
|
||||||
</ObjectFilterDropdownScope>
|
|
||||||
</ViewComponentInstanceContext.Provider>
|
</ViewComponentInstanceContext.Provider>
|
||||||
</RecordTableComponentInstanceContext.Provider>
|
</RecordTableComponentInstanceContext.Provider>
|
||||||
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
|
|||||||
@ -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,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -18,30 +18,37 @@ type SelectFilterParams = {
|
|||||||
filterDefinition: FilterDefinition;
|
filterDefinition: FilterDefinition;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useSelectFilterDefinitionUsedInDropdown = () => {
|
export const useSelectFilterDefinitionUsedInDropdown = (
|
||||||
|
componentInstanceId?: string,
|
||||||
|
) => {
|
||||||
const setFilterDefinitionUsedInDropdown = useSetRecoilComponentStateV2(
|
const setFilterDefinitionUsedInDropdown = useSetRecoilComponentStateV2(
|
||||||
filterDefinitionUsedInDropdownComponentState,
|
filterDefinitionUsedInDropdownComponentState,
|
||||||
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const setSelectedOperandInDropdown = useSetRecoilComponentStateV2(
|
const setSelectedOperandInDropdown = useSetRecoilComponentStateV2(
|
||||||
selectedOperandInDropdownComponentState,
|
selectedOperandInDropdownComponentState,
|
||||||
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const setObjectFilterDropdownSearchInput = useSetRecoilComponentStateV2(
|
const setObjectFilterDropdownSearchInput = useSetRecoilComponentStateV2(
|
||||||
objectFilterDropdownSearchInputComponentState,
|
objectFilterDropdownSearchInputComponentState,
|
||||||
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const advancedFilterViewFilterGroupId = useRecoilComponentValueV2(
|
const advancedFilterViewFilterGroupId = useRecoilComponentValueV2(
|
||||||
advancedFilterViewFilterGroupIdComponentState,
|
advancedFilterViewFilterGroupIdComponentState,
|
||||||
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const advancedFilterViewFilterId = useRecoilComponentValueV2(
|
const advancedFilterViewFilterId = useRecoilComponentValueV2(
|
||||||
advancedFilterViewFilterIdComponentState,
|
advancedFilterViewFilterIdComponentState,
|
||||||
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const setHotkeyScope = useSetHotkeyScope();
|
const setHotkeyScope = useSetHotkeyScope();
|
||||||
|
|
||||||
const { applyRecordFilter } = useApplyRecordFilter();
|
const { applyRecordFilter } = useApplyRecordFilter(componentInstanceId);
|
||||||
|
|
||||||
const selectFilterDefinitionUsedInDropdown = ({
|
const selectFilterDefinitionUsedInDropdown = ({
|
||||||
filterDefinition,
|
filterDefinition,
|
||||||
|
|||||||
@ -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,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -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 (
|
|
||||||
<ObjectFilterDropdownComponentInstanceContext.Provider
|
|
||||||
value={{ instanceId: filterScopeId }}
|
|
||||||
>
|
|
||||||
{children}
|
|
||||||
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@ -3,7 +3,7 @@ import { v4 } from 'uuid';
|
|||||||
|
|
||||||
import { useColumnDefinitionsFromFieldMetadata } from '@/object-metadata/hooks/useColumnDefinitionsFromFieldMetadata';
|
import { useColumnDefinitionsFromFieldMetadata } from '@/object-metadata/hooks/useColumnDefinitionsFromFieldMetadata';
|
||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
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 { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
|
||||||
import { getOperandsForFilterDefinition } from '@/object-record/object-filter-dropdown/utils/getOperandsForFilterType';
|
import { getOperandsForFilterDefinition } from '@/object-record/object-filter-dropdown/utils/getOperandsForFilterType';
|
||||||
import { isDropdownOpenComponentState } from '@/ui/layout/dropdown/states/isDropdownOpenComponentState';
|
import { isDropdownOpenComponentState } from '@/ui/layout/dropdown/states/isDropdownOpenComponentState';
|
||||||
@ -50,8 +50,8 @@ export const useHandleToggleColumnFilter = ({
|
|||||||
|
|
||||||
const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView();
|
const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView();
|
||||||
|
|
||||||
const { setFilterDefinitionUsedInDropdownInScope } =
|
const { selectFilterDefinitionUsedInDropdown } =
|
||||||
useSetFilterDefinitionUsedInDropdownInScope();
|
useSelectFilterDefinitionUsedInDropdown(viewBarId);
|
||||||
|
|
||||||
const handleToggleColumnFilter = useCallback(
|
const handleToggleColumnFilter = useCallback(
|
||||||
async (fieldMetadataId: string) => {
|
async (fieldMetadataId: string) => {
|
||||||
@ -94,10 +94,7 @@ export const useHandleToggleColumnFilter = ({
|
|||||||
|
|
||||||
await upsertCombinedViewFilter(newFilter);
|
await upsertCombinedViewFilter(newFilter);
|
||||||
|
|
||||||
setFilterDefinitionUsedInDropdownInScope(
|
selectFilterDefinitionUsedInDropdown({ filterDefinition });
|
||||||
newFilter.id,
|
|
||||||
filterDefinition,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
openDropdown(existingViewFilter?.id ?? newFilterId);
|
openDropdown(existingViewFilter?.id ?? newFilterId);
|
||||||
@ -106,7 +103,7 @@ export const useHandleToggleColumnFilter = ({
|
|||||||
openDropdown,
|
openDropdown,
|
||||||
columnDefinitions,
|
columnDefinitions,
|
||||||
upsertCombinedViewFilter,
|
upsertCombinedViewFilter,
|
||||||
setFilterDefinitionUsedInDropdownInScope,
|
selectFilterDefinitionUsedInDropdown,
|
||||||
currentViewWithCombinedFiltersAndSorts,
|
currentViewWithCombinedFiltersAndSorts,
|
||||||
availableFilterDefinitions,
|
availableFilterDefinitions,
|
||||||
],
|
],
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { ReactNode, useMemo } from 'react';
|
|||||||
|
|
||||||
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
|
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
|
||||||
import { AddObjectFilterFromDetailsButton } from '@/object-record/object-filter-dropdown/components/AddObjectFilterFromDetailsButton';
|
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 { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
|
||||||
import { useHandleToggleTrashColumnFilter } from '@/object-record/record-index/hooks/useHandleToggleTrashColumnFilter';
|
import { useHandleToggleTrashColumnFilter } from '@/object-record/record-index/hooks/useHandleToggleTrashColumnFilter';
|
||||||
import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
|
import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
|
||||||
@ -226,9 +226,9 @@ export const ViewBarDetails = ({
|
|||||||
defaultViewFilters,
|
defaultViewFilters,
|
||||||
availableFilterDefinitions,
|
availableFilterDefinitions,
|
||||||
).map((viewFilter) => (
|
).map((viewFilter) => (
|
||||||
<ObjectFilterDropdownScope
|
<ObjectFilterDropdownComponentInstanceContext.Provider
|
||||||
key={viewFilter.id}
|
key={viewFilter.id}
|
||||||
filterScopeId={viewFilter.id}
|
value={{ instanceId: viewFilter.id }}
|
||||||
>
|
>
|
||||||
<DropdownScope dropdownScopeId={viewFilter.id}>
|
<DropdownScope dropdownScopeId={viewFilter.id}>
|
||||||
<ViewBarFilterEffect filterDropdownId={viewFilter.id} />
|
<ViewBarFilterEffect filterDropdownId={viewFilter.id} />
|
||||||
@ -240,7 +240,7 @@ export const ViewBarDetails = ({
|
|||||||
viewFilterDropdownId={viewFilter.id}
|
viewFilterDropdownId={viewFilter.id}
|
||||||
/>
|
/>
|
||||||
</DropdownScope>
|
</DropdownScope>
|
||||||
</ObjectFilterDropdownScope>
|
</ObjectFilterDropdownComponentInstanceContext.Provider>
|
||||||
))}
|
))}
|
||||||
</StyledChipcontainer>
|
</StyledChipcontainer>
|
||||||
{hasFilterButton && (
|
{hasFilterButton && (
|
||||||
|
|||||||
Reference in New Issue
Block a user