Разные фиксы #8
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user