Result.tsx 808 B

123456789101112131415161718192021222324252627282930
  1. import { useMemo } from 'react';
  2. import { detectItemType } from '@/utils';
  3. export const useSearchResult = (searchResult: any[]) => {
  4. return useMemo(
  5. () =>
  6. searchResult?.map((resultItem: { [key: string]: any }) => {
  7. const tmp = Object.keys(resultItem).reduce(
  8. (prev: { [key: string]: any }, item: string) => {
  9. const itemType = detectItemType(resultItem[item]);
  10. switch (itemType) {
  11. case 'json':
  12. case 'array':
  13. case 'bool':
  14. prev[item] = JSON.stringify(resultItem[item]);
  15. break;
  16. default:
  17. prev[item] = resultItem[item];
  18. }
  19. return prev;
  20. },
  21. {}
  22. );
  23. return tmp;
  24. }),
  25. [searchResult]
  26. );
  27. };