Skip to content

Commit

Permalink
[frontend] Refactor (#5844)
Browse files Browse the repository at this point in the history
  • Loading branch information
Goumies committed Jun 7, 2024
1 parent 93ebd67 commit 03c2427
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ import useAttributes from '../../../../utils/hooks/useAttributes';
import { stixCyberObservablesLinesAttributesQuery } from '../../observations/stix_cyber_observables/StixCyberObservablesLines';
import Filters from '../../common/lists/Filters';
import {
cleanFeedFilters,
cleanFilters,
emptyFilterGroup,
serializeFilterGroupForBackend,
useBuildFilterKeysMapFromEntityType,
useCompleteFilterKeysMap,
useFetchFilterKeysSchema,
} from '../../../../utils/filters/filtersUtils';
import FilterIconButton from '../../../../components/FilterIconButton';
import { generateUniqueItemsArray, isNotEmptyField } from '../../../../utils/utils';
Expand Down Expand Up @@ -159,7 +159,7 @@ const FeedCreation: FunctionComponent<FeedCreationFormProps> = (props) => {
const [selectedTypes, setSelectedTypes] = useState<string[]>([]);
const [filters, helpers] = useFiltersState(emptyFilterGroup);

const completeFilterKeysMap: Map<string, Map<string, FilterDefinition>> = useCompleteFilterKeysMap();
const completeFilterKeysMap: Map<string, Map<string, FilterDefinition>> = useFetchFilterKeysSchema();
const filterKeysMap = useBuildFilterKeysMapFromEntityType(selectedTypes);
const availableFilterKeys = generateUniqueItemsArray(filterKeysMap.keys() ?? []);

Expand All @@ -177,7 +177,7 @@ const FeedCreation: FunctionComponent<FeedCreationFormProps> = (props) => {

const handleSelectTypes = (types: string[]) => {
setSelectedTypes(types);
cleanFeedFilters(filters, helpers, types, completeFilterKeysMap);
cleanFilters(filters, helpers, types, completeFilterKeysMap);
// feed attributes must be eventually cleanup in case of types removal
const attrValues = R.values(feedAttributes);
// noinspection JSMismatchedCollectionQueryUpdate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ import { stixCyberObservablesLinesAttributesQuery } from '../../observations/sti
import Filters from '../../common/lists/Filters';
import { feedCreationAllTypesQuery } from './FeedCreation';
import {
cleanFeedFilters,
cleanFilters,
deserializeFilterGroupForFrontend,
serializeFilterGroupForBackend,
useBuildFilterKeysMapFromEntityType,
useCompleteFilterKeysMap,
useFetchFilterKeysSchema,
} from '../../../../utils/filters/filtersUtils';
import FilterIconButton from '../../../../components/FilterIconButton';
import { generateUniqueItemsArray, isNotEmptyField } from '../../../../utils/utils';
Expand Down Expand Up @@ -156,13 +156,13 @@ const FeedEditionContainer = (props) => {
...feed.feed_attributes.map((n) => R.assoc('mappings', R.indexBy(R.prop('type'), n.mappings), n)),
});

const completeFilterKeysMap = useCompleteFilterKeysMap();
const completeFilterKeysMap = useFetchFilterKeysSchema();
const filterKeysMap = useBuildFilterKeysMapFromEntityType(selectedTypes);
const availableFilterKeys = generateUniqueItemsArray(filterKeysMap.keys() ?? []);

const handleSelectTypes = (types) => {
setSelectedTypes(types);
cleanFeedFilters(filters, helpers, types, completeFilterKeysMap);
cleanFilters(filters, helpers, types, completeFilterKeysMap);
// feed attributes must be eventually cleanup in case of types removal
const attrValues = R.values(feedAttributes);
// noinspection JSMismatchedCollectionQueryUpdate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,7 @@ export const getAvailableOperatorForFilter = (
return getAvailableOperatorForFilterKey(filterDefinition);
};

export const useCompleteFilterKeysMap = () => {
export const useFetchFilterKeysSchema = () => {
const { filterKeysSchema } = useAuth().schema;
return filterKeysSchema;
};
Expand Down Expand Up @@ -859,7 +859,7 @@ export const extractAllFilters: (filters: FilterGroup) => Filter[] = (filters: F
return allFilters;
};

export const cleanFeedFilters = (filters: FilterGroup, helpers: handleFilterHelpers, types: string[], completeFilterKeysMap: Map<string, Map<string, FilterDefinition>>) => {
export const cleanFilters = (filters: FilterGroup, helpers: handleFilterHelpers, types: string[], completeFilterKeysMap: Map<string, Map<string, FilterDefinition>>) => {
const newAvailableFilterKeys = generateUniqueItemsArray(types.flatMap((t) => Array.from(completeFilterKeysMap.get(t)?.keys() ?? [])));
const allListedFilters = extractAllFilters(filters);
const filtersToRemoveIds = allListedFilters.filter((f) => !newAvailableFilterKeys.includes(f.key)).map((f) => f.id ?? '');
Expand Down

0 comments on commit 03c2427

Please sign in to comment.