Skip to content
Snippets Groups Projects
Commit 0947fbb0 authored by Lukas's avatar Lukas
Browse files

Update block search url build function

parent 6cc45a39
No related branches found
No related tags found
1 merge request!499#392_part2_simplify_URL_route_build
import { convertIdsToBooleanArray, getPageUrlParams } from "@/lib/utils";
import Explorer from "@/types/Explorer";
import { dataToURL } from "@/utils/URLutils";
import { convertIdsToBooleanArray } from "@/lib/utils";
import { setParamIfPositive } from "./globalSearchHelpers";
export function startBlockSearch(
blockSearchProps: Explorer.BlockSearchProps,
......@@ -13,43 +13,36 @@ export function startBlockSearch(
export function getBlockPageLink(
blockSearchProps: Explorer.BlockSearchProps | undefined,
operationsTypes: any
operationsTypes: Explorer.ExtendedOperationTypePattern[] | undefined
): (blockNumber: number) => string {
return (blockNumber: number) => {
if (!blockSearchProps) return "#";
const urlParams: Explorer.UrlParam[] = [
{
paramName: "accountName",
paramValue: dataToURL(blockSearchProps.accountName),
},
{
paramName: "keyContent",
paramValue: dataToURL(blockSearchProps.deepProps.content),
},
{
paramName: "setOfKeys",
paramValue: dataToURL(blockSearchProps.deepProps.keys),
},
];
if (blockSearchProps.operationTypes) {
const booleanTypesArray = convertIdsToBooleanArray(
blockSearchProps.operationTypes
);
let isFull = !!blockSearchProps.operationTypes;
const { accountName, operationTypes } = blockSearchProps;
const searchParams = new URLSearchParams();
setParamIfPositive(searchParams, "accountName", accountName);
if (operationTypes) {
const booleanTypesArray = convertIdsToBooleanArray(operationTypes);
let isFull = !!operationTypes;
operationsTypes?.forEach((operationType: any) => {
if (
!blockSearchProps.operationTypes?.includes(operationType.op_type_id)
)
if (!operationTypes.includes(operationType.op_type_id)) {
isFull = false;
}
});
urlParams.push({
paramName: "filters",
paramValue: dataToURL(!isFull ? booleanTypesArray : []),
});
const filtersValue = !isFull ? booleanTypesArray : [];
setParamIfPositive(searchParams, "filters", filtersValue);
}
return `/block/${blockNumber}${getPageUrlParams(urlParams)}`;
const queryString = searchParams.toString();
const urlPath = `/block/${blockNumber}${
queryString ? `?${queryString}` : ""
}`;
return urlPath;
};
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment