Complete useFilteredSearchQuery refactoring (#1531)
Complete useFilteredSearchQuery ref actoring
This commit is contained in:
@ -41,11 +41,7 @@ export function ActivityAssigneePicker({
|
||||
queryHook: useSearchUserQuery,
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'firstName',
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
{
|
||||
fieldName: 'lastName',
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
],
|
||||
|
||||
@ -16,7 +16,7 @@ export function useFilteredSearchCompanyQuery({
|
||||
queryHook: useSearchCompanyQuery,
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'name',
|
||||
fieldNames: ['name'],
|
||||
filter: searchFilter,
|
||||
},
|
||||
],
|
||||
|
||||
@ -31,19 +31,24 @@ export function PeoplePicker({
|
||||
relationPickerSearchFilterScopedState,
|
||||
);
|
||||
|
||||
const queryFilters = [
|
||||
{
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
];
|
||||
|
||||
if (companyId) {
|
||||
queryFilters.push({
|
||||
fieldNames: ['companyId'],
|
||||
filter: companyId,
|
||||
});
|
||||
}
|
||||
|
||||
const people = useFilteredSearchEntityQuery({
|
||||
queryHook: useSearchPeopleQuery,
|
||||
selectedIds: [personId ?? ''],
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'firstName',
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
{
|
||||
fieldName: 'lastName',
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
],
|
||||
filters: queryFilters,
|
||||
mappingFunction: (person) => ({
|
||||
entityType: Entity.Person,
|
||||
id: person.id,
|
||||
|
||||
@ -16,11 +16,7 @@ export function useFilteredSearchPeopleQuery({
|
||||
queryHook: useSearchPeopleQuery,
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'firstName',
|
||||
filter: searchFilter,
|
||||
},
|
||||
{
|
||||
fieldName: 'lastName',
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
filter: searchFilter,
|
||||
},
|
||||
],
|
||||
|
||||
@ -26,7 +26,7 @@ type ExtractEntityTypeFromQueryResponse<T> = T extends {
|
||||
? U
|
||||
: never;
|
||||
|
||||
type SearchFilter = { fieldName: string; filter: string | number };
|
||||
type SearchFilter = { fieldNames: string[]; filter: string | number };
|
||||
|
||||
const DEFAULT_SEARCH_REQUEST_LIMIT = 10;
|
||||
|
||||
@ -87,12 +87,18 @@ export function useFilteredSearchEntityQuery<
|
||||
} as QueryVariables,
|
||||
});
|
||||
|
||||
const searchFilterByField = filters.map(({ fieldName, filter }) => ({
|
||||
[fieldName]: {
|
||||
contains: `%${filter}%`,
|
||||
mode: QueryMode.Insensitive,
|
||||
},
|
||||
}));
|
||||
const searchFilter = filters.map(({ fieldNames, filter }) => {
|
||||
return {
|
||||
OR: fieldNames.map((fieldName) => ({
|
||||
[fieldName]: {
|
||||
contains: `%${filter}%`,
|
||||
mode: QueryMode.Insensitive,
|
||||
},
|
||||
})),
|
||||
};
|
||||
});
|
||||
|
||||
console.log(searchFilter);
|
||||
|
||||
const {
|
||||
loading: filteredSelectedEntitiesLoading,
|
||||
@ -102,7 +108,7 @@ export function useFilteredSearchEntityQuery<
|
||||
where: {
|
||||
AND: [
|
||||
{
|
||||
OR: searchFilterByField,
|
||||
AND: searchFilter,
|
||||
},
|
||||
{
|
||||
id: {
|
||||
@ -117,30 +123,13 @@ export function useFilteredSearchEntityQuery<
|
||||
} as QueryVariables,
|
||||
});
|
||||
|
||||
const filterEntitesBy = filterByFields
|
||||
? filterByFields.map((field) => {
|
||||
const extractedValues: Record<string, any> = {};
|
||||
|
||||
for (const key in field) {
|
||||
extractedValues[key] = {
|
||||
equals: field[key],
|
||||
};
|
||||
}
|
||||
|
||||
return extractedValues;
|
||||
})
|
||||
: [];
|
||||
|
||||
const { loading: entitiesToSelectLoading, data: entitiesToSelectData } =
|
||||
queryHook({
|
||||
variables: {
|
||||
where: {
|
||||
AND: [
|
||||
{
|
||||
OR: filterEntitesBy,
|
||||
},
|
||||
{
|
||||
OR: searchFilterByField,
|
||||
AND: searchFilter,
|
||||
},
|
||||
{
|
||||
id: {
|
||||
|
||||
@ -28,11 +28,7 @@ export function FilterDropdownUserSearchSelect({
|
||||
queryHook: useSearchUserQuery,
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'firstName',
|
||||
filter: filterDropdownSearchInput,
|
||||
},
|
||||
{
|
||||
fieldName: 'lastName',
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
filter: filterDropdownSearchInput,
|
||||
},
|
||||
],
|
||||
|
||||
@ -31,11 +31,7 @@ export function UserPicker({
|
||||
queryHook: useSearchUserQuery,
|
||||
filters: [
|
||||
{
|
||||
fieldName: 'firstName',
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
{
|
||||
fieldName: 'lastName',
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user