diff --git a/src/webparts/requestPortal/RequestPortalWebPart.ts b/src/webparts/requestPortal/RequestPortalWebPart.ts index d4524ff..e36543c 100644 --- a/src/webparts/requestPortal/RequestPortalWebPart.ts +++ b/src/webparts/requestPortal/RequestPortalWebPart.ts @@ -12,7 +12,7 @@ import { initSP } from './shared/pnp/pnpjs'; import { installErrorLogging } from './shared/diagnostics'; import { setImpersonatedIdentity } from './shared/impersonation'; import { APPROVAL_API_BASE_URL_LOCAL, APPROVAL_API_BASE_URL_PROD, setApprovalApiBaseUrl } from './shared/config'; -import { initListPartitions } from './shared/approval/listPartitions'; +import { initListPartitions } from './shared/approval'; import { ErrorOverlay } from './shared/ui'; import { PropertyPaneDebugUser } from './propertyPane/PropertyPaneDebugUser'; @@ -76,7 +76,18 @@ export default class RequestPortalWebPart extends BaseClientSideWebPart { + // + // НЕ ждём эту загрузку здесь (не Promise.all, а просто вызов) — onInit + // блокирует ПЕРВЫЙ render() всего портала (SPFx не рисует веб-часть, пока + // его промис не разрешится), а два новых AAD-запроса к внешнему api.tnsu.kz + // не обязаны попадать в этот путь: раньше onInit резолвился почти мгновенно + // (только _getEnvironmentMessage, без сети), и весь портал — включая + // «Мои заявки» и «Новая заявка», которым партиции вообще не нужны сразу — + // ждал открытия форм. Партиции при этом гарантированно успевают раньше, + // чем смонтируется первая форма (ленивый чанк грузится дольше). + // eslint-disable-next-line no-void -- без void это «висячий» промис, а no-floating-promises здесь уровня error + void initListPartitions(this.context); + return this._getEnvironmentMessage().then(message => { this._environmentMessage = message; }); }