30 lines
843 B
TypeScript
30 lines
843 B
TypeScript
import {UserProfile} from 'mattermost-redux/types/users';
|
|
|
|
export function getUserDisplayName(user: UserProfile): string {
|
|
if (user.nickname) {
|
|
return user.nickname;
|
|
}
|
|
if (user.first_name || user.last_name) {
|
|
return `${user.first_name} ${user.last_name}`.trim();
|
|
}
|
|
return user.username;
|
|
}
|
|
|
|
export function debounce<T extends(...args: any[]) => void>(fn: T, delay: number): T {
|
|
let timer: ReturnType<typeof setTimeout>;
|
|
return ((...args: any[]) => {
|
|
clearTimeout(timer);
|
|
timer = setTimeout(() => fn(...args), delay);
|
|
}) as unknown as T;
|
|
}
|
|
|
|
export function getServerErrorId(err: unknown): string {
|
|
const msg = (err as {message?: string})?.message || '';
|
|
try {
|
|
const parsed = JSON.parse(msg);
|
|
return parsed.id || '';
|
|
} catch {
|
|
return '';
|
|
}
|
|
}
|