fix: ссылка на парную заявку открывается в той же вкладке

Было target="_blank" — на проде это читалось как «портал зачем-то плодит окна».
Ссылка ведёт на ту же страницу портала с другими rp-параметрами, так что обычная
навигация даёт нормальный переход с работающей кнопкой «назад».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
gorbenko.pavel
2026-08-25 13:40:22 +05:00
parent cda68f86b0
commit 0f6d1b7ddf
3 changed files with 7 additions and 6 deletions
@@ -51,7 +51,7 @@ RequestTypeId» в `docs/forms.md`). Тип уже зарегистрирова
Пара связана колонками-гиперссылками: `DismissalUrl` здесь → на заявление, Пара связана колонками-гиперссылками: `DismissalUrl` здесь → на заявление,
`ClearanceUrl` в заявлении → на лист. Форма их не пишет (заполняет автосоздание либо `ClearanceUrl` в заявлении → на лист. Форма их не пишет (заполняет автосоздание либо
вручную в SharePoint), но **показывает**: поле «Заявление на увольнение» — вручную в SharePoint), но **показывает**: поле «Заявление на увольнение» —
`LinkField` из `shared/ui`, read-only, открывается в новой вкладке; у листов, `LinkField` из `shared/ui`, read-only, открывается в той же вкладке; у листов,
заведённых руками, ссылки нет и поле не рендерится. заведённых руками, ссылки нет и поле не рендерится.
## Секции формы ## Секции формы
@@ -63,7 +63,7 @@ approval-route (`getPlannedMatrix` для фаз «Согласование» и
Ссылки **видны на обеих формах** и кликабельны: поле «Обходной лист» в заявлении и Ссылки **видны на обеих формах** и кликабельны: поле «Обходной лист» в заявлении и
«Заявление на увольнение» в обходном листе (`LinkField`, `shared/ui`) — read-only, «Заявление на увольнение» в обходном листе (`LinkField`, `shared/ui`) — read-only,
открываются в новой вкладке и появляются только когда связь есть. У согласующего, открывают парную заявку в ТОЙ ЖЕ вкладке и появляются только когда связь есть. У согласующего,
только что одобрившего заявление, ссылка появляется сразу, без перезагрузки. только что одобрившего заявление, ссылка появляется сразу, без перезагрузки.
Что важно знать про это поведение: Что важно знать про это поведение:
@@ -18,9 +18,10 @@ interface ILinkFieldProps {
* заполняется автосозданием обходного листа), и до этого момента их нет смысла * заполняется автосозданием обходного листа), и до этого момента их нет смысла
* показывать. * показывать.
* *
* Открывается в НОВОЙ вкладке: портал — одна страница, и переход по ссылке в * Открывается в ТОЙ ЖЕ вкладке — обычной навигацией. Ссылка ведёт на ту же страницу
* текущей означал бы полную перезагрузку с потерей того, что открыто и, возможно, * портала с другими rp-параметрами (см. requestLinkUrl), то есть страница
* не сохранено. * перезагрузится и покажет парную заявку; для пользователя это переход «туда и
* обратно кнопкой назад», а не второе окно, которое потом закрывать.
*/ */
export const LinkField: React.FC<ILinkFieldProps> = ({ label, url, text }) => { export const LinkField: React.FC<ILinkFieldProps> = ({ label, url, text }) => {
if (!url) return null; if (!url) return null;
@@ -28,7 +29,7 @@ export const LinkField: React.FC<ILinkFieldProps> = ({ label, url, text }) => {
return ( return (
<FormField label={label} full> <FormField label={label} full>
<div className={styles.box}> <div className={styles.box}>
<a className={styles.link} href={url} target="_blank" rel="noreferrer"> <a className={styles.link} href={url}>
<span>{text || url}</span> <span>{text || url}</span>
<Icon name="chevron-right" size="sm" /> <Icon name="chevron-right" size="sm" />
</a> </a>