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}