replace search resolvers by global search in front (#11086)
Done - Replace global search in multi record picker and single record picker To do - refactor SingleRecordPicker to match MultipleRecordPicker - next 1:1 - items in this issue https://github.com/twentyhq/core-team-issues/issues/643 closes https://github.com/twentyhq/core-team-issues/issues/535
This commit is contained in:
@ -1,9 +1,7 @@
|
||||
import { useMapToObjectRecordIdentifier } from '@/object-metadata/hooks/useMapToObjectRecordIdentifier';
|
||||
import { formatGlobalSearchRecordAsSingleRecordPickerRecord } from '@/object-metadata/utils/formatGlobalSearchRecordAsSingleRecordPickerRecord';
|
||||
import { DEFAULT_SEARCH_REQUEST_LIMIT } from '@/object-record/constants/DefaultSearchRequestLimit';
|
||||
import { useSearchRecords } from '@/object-record/hooks/useSearchRecords';
|
||||
import { MultipleRecordPickerRecords } from '@/object-record/record-picker/multiple-record-picker/types/MultipleRecordPickerRecords';
|
||||
import { useObjectRecordSearchRecords } from '@/object-record/hooks/useObjectRecordSearchRecords';
|
||||
import { SingleRecordPickerRecord } from '@/object-record/record-picker/single-record-picker/types/SingleRecordPickerRecord';
|
||||
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||
import { isDefined } from 'twenty-shared';
|
||||
|
||||
export const useFilteredSearchRecordQuery = ({
|
||||
@ -18,19 +16,16 @@ export const useFilteredSearchRecordQuery = ({
|
||||
excludedRecordIds?: string[];
|
||||
objectNameSingular: string;
|
||||
searchFilter?: string;
|
||||
}): MultipleRecordPickerRecords<SingleRecordPickerRecord> => {
|
||||
const { mapToObjectRecordIdentifier } = useMapToObjectRecordIdentifier({
|
||||
objectNameSingular,
|
||||
});
|
||||
|
||||
const mappingFunction = (record: ObjectRecord) => ({
|
||||
...mapToObjectRecordIdentifier(record),
|
||||
record,
|
||||
});
|
||||
}): {
|
||||
selectedRecords: SingleRecordPickerRecord[];
|
||||
filteredSelectedRecords: SingleRecordPickerRecord[];
|
||||
recordsToSelect: SingleRecordPickerRecord[];
|
||||
loading: boolean;
|
||||
} => {
|
||||
const selectedIdsFilter = { id: { in: selectedIds } };
|
||||
|
||||
const { loading: selectedRecordsLoading, records: selectedRecords } =
|
||||
useSearchRecords({
|
||||
const { loading: selectedRecordsLoading, searchRecords: selectedRecords } =
|
||||
useObjectRecordSearchRecords({
|
||||
objectNameSingular,
|
||||
filter: selectedIdsFilter,
|
||||
skip: !selectedIds.length,
|
||||
@ -39,8 +34,8 @@ export const useFilteredSearchRecordQuery = ({
|
||||
|
||||
const {
|
||||
loading: filteredSelectedRecordsLoading,
|
||||
records: filteredSelectedRecords,
|
||||
} = useSearchRecords({
|
||||
searchRecords: filteredSelectedRecords,
|
||||
} = useObjectRecordSearchRecords({
|
||||
objectNameSingular,
|
||||
filter: selectedIdsFilter,
|
||||
skip: !selectedIds.length,
|
||||
@ -51,8 +46,8 @@ export const useFilteredSearchRecordQuery = ({
|
||||
const notFilter = notFilterIds.length
|
||||
? { not: { id: { in: notFilterIds } } }
|
||||
: undefined;
|
||||
const { loading: recordsToSelectLoading, records: recordsToSelect } =
|
||||
useSearchRecords({
|
||||
const { loading: recordsToSelectLoading, searchRecords: recordsToSelect } =
|
||||
useObjectRecordSearchRecords({
|
||||
objectNameSingular,
|
||||
filter: notFilter,
|
||||
limit: limit ?? DEFAULT_SEARCH_REQUEST_LIMIT,
|
||||
@ -61,11 +56,15 @@ export const useFilteredSearchRecordQuery = ({
|
||||
});
|
||||
|
||||
return {
|
||||
selectedRecords: selectedRecords.map(mappingFunction).filter(isDefined),
|
||||
filteredSelectedRecords: filteredSelectedRecords
|
||||
.map(mappingFunction)
|
||||
selectedRecords: selectedRecords
|
||||
.map(formatGlobalSearchRecordAsSingleRecordPickerRecord)
|
||||
.filter(isDefined),
|
||||
filteredSelectedRecords: filteredSelectedRecords
|
||||
.map(formatGlobalSearchRecordAsSingleRecordPickerRecord)
|
||||
.filter(isDefined),
|
||||
recordsToSelect: recordsToSelect
|
||||
.map(formatGlobalSearchRecordAsSingleRecordPickerRecord)
|
||||
.filter(isDefined),
|
||||
recordsToSelect: recordsToSelect.map(mappingFunction).filter(isDefined),
|
||||
loading:
|
||||
recordsToSelectLoading ||
|
||||
filteredSelectedRecordsLoading ||
|
||||
|
||||
Reference in New Issue
Block a user