From 1c43cdd2b90849102bdcdcdce4bec153ab4fe4f3 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Tue, 18 Aug 2026 11:57:44 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B8=D1=88=D0=B5=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../propertyPane/DebugUserField.tsx | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/webparts/requestPortal/propertyPane/DebugUserField.tsx b/src/webparts/requestPortal/propertyPane/DebugUserField.tsx index 018a8d9..c83b3c9 100644 --- a/src/webparts/requestPortal/propertyPane/DebugUserField.tsx +++ b/src/webparts/requestPortal/propertyPane/DebugUserField.tsx @@ -36,21 +36,21 @@ export const DebugUserField: React.FC = ({ label, descript return; } - // E-mail — используем как есть, без похода в people search. - if (text.indexOf('@') >= 0) { - setStatus('email'); - setFound(undefined); - onResolved(text, text, ''); - return; - } + // E-mail введён напрямую — используем его как есть, но всё равно ищем ФИО + // (для красной полосы в интерфейсе и для проверки, что такой сотрудник есть). + const isEmail = text.indexOf('@') >= 0; let cancelled = false; - setStatus('loading'); + setStatus(isEmail ? 'email' : 'loading'); + if (isEmail) setFound(undefined); const timer = window.setTimeout(() => { resolveDebugUser(context, text) .then((hit) => { if (cancelled) return; - if (hit) { + if (isEmail) { + setFound(hit); + onResolved(text, text, hit ? hit.displayName : ''); + } else if (hit) { setStatus('found'); setFound(hit); onResolved(text, hit.email, hit.displayName); @@ -62,9 +62,13 @@ export const DebugUserField: React.FC = ({ label, descript }) .catch(() => { if (cancelled) return; - setStatus('notfound'); - setFound(undefined); - onResolved(text, '', ''); + if (isEmail) { + onResolved(text, text, ''); + } else { + setStatus('notfound'); + setFound(undefined); + onResolved(text, '', ''); + } }); }, DEBOUNCE_MS); @@ -89,7 +93,10 @@ export const DebugUserField: React.FC = ({ label, descript {status === 'loading' && 'Ищем сотрудника…'} {status === 'found' && found && `Найдено: ${found.displayName} — ${found.email}`} {status === 'notfound' && 'Сотрудник не найден — подмена работать не будет'} - {status === 'email' && `Используется как e-mail напрямую: ${query.trim()}`} + {status === 'email' && + (found + ? `Используется как e-mail напрямую: ${query.trim()} (${found.displayName})` + : `Используется как e-mail напрямую: ${query.trim()}`)}
{description}