feat: universal search.

This commit is contained in:
a.bouhuolia
2021-08-21 18:59:49 +02:00
parent a7b0f1a8d2
commit 79c1b2ab67
82 changed files with 2497 additions and 317 deletions

View File

@@ -0,0 +1,41 @@
import { getUniversalSearchBind } from '../../../containers/UniversalSearch/utils';
import { useResourceData } from '../GenericResource';
/**
* Transformes the resource data to search entries based on
* the given resource type.
* @param {string} type
* @param {any} resource
* @returns
*/
function transfromResourceDataToSearch(resource) {
const selectItem = getUniversalSearchBind(resource._type, 'itemSelect');
return resource.items
.map((item) => ({
...selectItem ? selectItem(item) : {},
_type: resource._type,
}));
}
/**
*
* @param {*} type
* @param {*} searchKeyword
* @returns
*/
export function useUniversalSearch(type, searchKeyword, props) {
const { data, ...restProps } = useResourceData(
type,
{
search_keyword: searchKeyword,
},
props,
);
const searchData = transfromResourceDataToSearch(data);
return {
data: searchData,
...restProps,
};
}