From 4c851b48929c555a2d7f7985f48c2fbd0a6cbbd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D1=83=D1=80=20=D0=93=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D1=86=D0=BA=D0=B8=D0=B9?= Date: Fri, 2 Oct 2026 09:43:20 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BE=D0=B1=D1=8A=D1=8F=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=20Teams=20=D0=B2=D0=B8=D0=B4?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B8=20=D0=B2=D0=BE=20=D0=B2=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D0=BA=D0=B5-=D1=81=D0=B0=D0=B9=D1=82=D0=B5=20SharePoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Если в Teams закреплена обычная страница SharePoint, SPFx не передаёт веб-части Teams-контекст, и объявление «открывайте в браузере» не показывалось. Теперь Teams определяется ещё по фрейму и User-Agent. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../components/RequestPortal.tsx | 3 ++- .../requestPortal/shared/hostEnvironment.ts | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/webparts/requestPortal/shared/hostEnvironment.ts diff --git a/src/webparts/requestPortal/components/RequestPortal.tsx b/src/webparts/requestPortal/components/RequestPortal.tsx index 715b596..786fcad 100644 --- a/src/webparts/requestPortal/components/RequestPortal.tsx +++ b/src/webparts/requestPortal/components/RequestPortal.tsx @@ -29,6 +29,7 @@ import { confirmDiscardFormChanges, markFormClean, markFormDirty } from '../shar import { Drawer } from './Drawer/Drawer'; import { CategoryTabs } from './CategoryTabs/CategoryTabs'; import { TeamsBrowserNotice } from './TeamsBrowserNotice/TeamsBrowserNotice'; +import { isOpenedInTeams } from '../shared/hostEnvironment'; import { CATEGORIES, DEFAULT_CATEGORY_ID } from '../data/categories'; import { REQUEST_TYPES } from '../data/requests'; import SubmitFeature from '../features/submit/SubmitFeature'; @@ -456,7 +457,7 @@ const RequestPortal: React.FC = ({ hasTeamsContext, context onInput={markFormDirty} onChange={markFormDirty} > - {hasTeamsContext && } + {isOpenedInTeams(hasTeamsContext) && }