// Маршрутизация портала по параметрам URL. // // Обычный режим (нет параметров) — подача заявок (features/submit). // Режим согласующего — переход по ссылке из потока Power Automate: // …/СтраницаПортала.aspx?mode=approve&type=<форма>&id= // где type = ключ формы в реестре (forms/registry), id = RowID заявки в её списке данных. export type PortalMode = 'submit' | 'approve'; export interface IRoute { mode: PortalMode; /** Ключ формы (тип заявки) — только для mode='approve'. */ formKey?: string; /** Id заявки в списке данных — только для mode='approve'. */ itemId?: number; } /** Разобрать строку запроса (по умолчанию — из адреса страницы) в маршрут. */ export function parseRoute(search: string = window.location.search): IRoute { const params = new URLSearchParams(search); const mode = params.get('mode'); const formKey = params.get('type') ?? undefined; const idRaw = params.get('id'); const itemId = idRaw ? Number(idRaw) : undefined; // Режим согласующего валиден только при полном наборе параметров. if (mode === 'approve' && formKey && itemId && !isNaN(itemId)) { return { mode: 'approve', formKey, itemId }; } return { mode: 'submit' }; }