правки по логике переключения
Tests / frontend-test (push) Successful in 45s
Tests / backend-test (push) Successful in 2m11s

This commit is contained in:
gorbenko.pavel
2026-08-07 16:04:22 +05:00
parent 1d45780294
commit 11738b6e4a
5 changed files with 98 additions and 15 deletions
@@ -321,6 +321,13 @@ export const ManageRequestsScreen: React.FC<IManageRequestsScreenProps> = ({ api
// от статуса отдельных строк (см. isFullyClosedRequestStatus).
const readOnly = matrix ? isFullyClosedRequestStatus(matrix.request.status) : true;
// Заявка отклонена — дальше по маршруту дело не пойдёт ни в одной фазе, значит
// добавлять исполнителя нельзя нигде, даже в фазу, где ещё вообще нет строк
// (readOnly для этого не подходит: он рассчитан только на REQUEST_STATUS.closed
// и делает ВСЮ заявку неизменяемой, а отклонённую всё ещё можно редактировать —
// переназначать/удалять уже существующие шаги, просто новые уже некуда).
const requestRejected = matrix?.request.status === REQUEST_STATUS.rejected;
// Сортировка по order — ОБЯЗАТЕЛЬНА, а не косметика: ManageRequestsPhaseTable
// считает блоки и параллельность по ФИЗИЧЕСКОМУ порядку строк в массиве
// (markParallel сравнивает order с предыдущей строкой), а оптимистичные
@@ -511,6 +518,7 @@ export const ManageRequestsScreen: React.FC<IManageRequestsScreenProps> = ({ api
title={texts.manageRequests.approvalPhaseTitle}
rows={approvalRows}
readOnly={readOnly}
requestRejected={requestRejected}
statusVariant={statusVariant}
onReassign={openReassign}
onRemove={askDelete}
@@ -524,6 +532,7 @@ export const ManageRequestsScreen: React.FC<IManageRequestsScreenProps> = ({ api
title={texts.manageRequests.executionPhaseTitle}
rows={executionRows}
readOnly={readOnly}
requestRejected={requestRejected}
statusVariant={statusVariant}
onReassign={openReassign}
onRemove={askDelete}