All files / src/hooks useQueryString.ts

82.35% Statements 14/17
66.66% Branches 16/24
100% Functions 2/2
82.35% Lines 14/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58                    18x                       378x     378x   378x   378x       378x   378x 46x       378x           378x 32x       346x 4x     378x    
import { encodedQueryFilterMap } from "@services/filtering";
import {
  selectMerchantStatusName,
  selectQueryFilters,
} from "@redux/slices/enterprise/merchants";
import { useAppSelector } from "@redux/hooks";
import { selectedQueryString, selectedQueryStringQuickFilter, selectedQuickFilter } from "@redux/slices/tableFilters";
import { selectQueryFilters as selectQueryFiltersEnt } from "@redux/slices/acquirer/enterprises";
import { useMemo } from "react";
 
const DEFAULT_VALUES = { isMerchant: true, applyAdvancedQuery: true };
 
type ParamType = {
  isMerchant?: boolean;
  applyAdvancedQuery?: boolean;
  useQuickFilter?: boolean;
};
export default function useQueryString({
  isMerchant = true,
  applyAdvancedQuery = true,
  useQuickFilter = false
}: ParamType = DEFAULT_VALUES) {
  const queryFilters = isMerchant
    ? useAppSelector(selectQueryFilters)
    : useAppSelector(selectQueryFiltersEnt);
  const statusName = useAppSelector(selectMerchantStatusName);
 
  const quickFilter = useAppSelector(selectedQuickFilter);
 
  const advancedQueryString = (useQuickFilter && quickFilter)
    ? useAppSelector(selectedQueryStringQuickFilter)
    : useAppSelector(selectedQueryString);
 
  let queryString = "";
 
  const queryFilter = useMemo(
    () => encodedQueryFilterMap(queryFilters),
    [queryFilters],
  );
 
    Iif (queryFilter.products) {
    if (statusName) {
      queryString = `%3B${queryFilter.products}%3B${statusName}`;
    } else {
      queryString = `%3B${queryFilter.products}`;
    }
  } else if (statusName) {
    queryString =
      advancedQueryString && applyAdvancedQuery
        ? `%3B${statusName}%3B${advancedQueryString}`
        : `%3B${statusName}`;
  } else if (advancedQueryString && applyAdvancedQuery) {
    queryString = `%3B${advancedQueryString}`;
  }
 
  return queryString;
}