Introduce a RelationPicker component with a RelationPickerScope (#2617)

Refactor mainIdentifier into scope componetn
This commit is contained in:
Charles Bochet
2023-11-21 16:09:02 +01:00
committed by GitHub
parent d25f00e04f
commit f97d25d986
25 changed files with 256 additions and 168 deletions

View File

@ -4,6 +4,7 @@ import { isNonEmptyString } from '@sniptt/guards';
import { mapPaginatedObjectsToObjects } from '@/object-record/utils/mapPaginatedObjectsToObjects';
import { EntitiesForMultipleEntitySelect } from '@/ui/input/relation-picker/components/MultipleEntitySelect';
import { EntityForSelect } from '@/ui/input/relation-picker/types/EntityForSelect';
import { assertNotNull } from '~/utils/assert';
import { isDefined } from '~/utils/isDefined';
type SearchFilter = { fieldNames: string[]; filter: string | number };
@ -36,7 +37,7 @@ export const useFilteredSearchEntityQuery = ({
filters: SearchFilter[];
sortOrder?: OrderBy;
selectedIds: string[];
mappingFunction: (entity: any) => EntityForSelect;
mappingFunction: (entity: any) => EntityForSelect | undefined;
limit?: number;
excludeEntityIds?: string[];
objectNamePlural: string;
@ -139,15 +140,21 @@ export const useFilteredSearchEntityQuery = ({
selectedEntities: mapPaginatedObjectsToObjects({
objectNamePlural: objectNamePlural,
pagedObjects: selectedEntitiesData,
}).map(mappingFunction),
})
.map(mappingFunction)
.filter(assertNotNull),
filteredSelectedEntities: mapPaginatedObjectsToObjects({
objectNamePlural: objectNamePlural,
pagedObjects: filteredSelectedEntitiesData,
}).map(mappingFunction),
})
.map(mappingFunction)
.filter(assertNotNull),
entitiesToSelect: mapPaginatedObjectsToObjects({
objectNamePlural: objectNamePlural,
pagedObjects: entitiesToSelectData,
}).map(mappingFunction),
})
.map(mappingFunction)
.filter(assertNotNull),
loading:
entitiesToSelectLoading ||
filteredSelectedEntitiesLoading ||