export function getMenuMessageRoute(bodyText?: string) {
|
if (!bodyText) return '';
|
try {
|
const data = JSON.parse(bodyText);
|
const menuUrl = String(data.menuUrl || '').trim();
|
if (!menuUrl.startsWith('/') || menuUrl.startsWith('//')) return '';
|
|
const parameterName = String(data.parameterName || '').trim();
|
if (!parameterName || data.parameterValue === undefined || data.parameterValue === null || data.parameterValue === '') return menuUrl;
|
|
const [pathAndQuery = '', hash = ''] = menuUrl.split('#', 2);
|
const [path, query = ''] = pathAndQuery.split('?', 2);
|
const searchParams = new URLSearchParams(query);
|
searchParams.set(parameterName, String(data.parameterValue));
|
const queryString = searchParams.toString();
|
return `${path}${queryString ? `?${queryString}` : ''}${hash ? `#${hash}` : ''}`;
|
} catch {
|
return '';
|
}
|
}
|