Files
Investidor-V2/resources/js/lib/catalogue-context.ts
T
2026-11-02 20:31:15 +02:00

36 lines
1.1 KiB
TypeScript

import { searchTerritoryHref } from './search-territory.ts';
/** Only a query string is carried; the return destination is always local. */
export function catalogueDetailHref(
path: string,
query: string,
pageUrl?: string,
): string {
if (pageUrl) {
const page = new URL(
pageUrl,
'https://portal.invalid',
).searchParams.get('page');
if (
page &&
/^[1-9]\d*$/.test(page) &&
Number.isSafeInteger(Number(page))
) {
const params = new URLSearchParams(query);
params.set('page', page);
query = params.toString();
}
}
return query
? `${path}?catalogue_query=${encodeURIComponent(query)}`
: path;
}
export function catalogueReturnHref(base: string, pageUrl: string): string {
const query = new URL(pageUrl, 'https://portal.invalid').searchParams.get(
'catalogue_query',
);
return searchTerritoryHref(
base + (query ? `?${new URLSearchParams(query).toString()}` : ''),
pageUrl,
);
}