Разные фиксы #8

Merged
gorbenko.pavel merged 8 commits from fix-webpart-properties into main 2026-08-18 08:45:42 +00:00
Showing only changes of commit 1c43cdd2b9 - Show all commits
@@ -36,21 +36,21 @@ export const DebugUserField: React.FC<IDebugUserFieldProps> = ({ 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<IDebugUserFieldProps> = ({ 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<IDebugUserFieldProps> = ({ 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()}`)}
</div>
<div style={{ marginTop: 6, fontSize: 12, lineHeight: 1.4, color: '#605e5c' }}>{description}</div>
</div>