@inweb/client
Version:
JavaScript REST API client for the Open Cloud Server
69 lines (68 loc) • 2.11 kB
TypeScript
/**
* Defines brief user information.
*/
export interface IShortUserDesc {
/**
* Unique user ID.
*/
userId: string;
/**
* User name.
*/
userName: string;
/**
* First name.
*/
name: string;
/**
* Last name.
*/
lastName: string;
/**
* User email.
*/
email: string;
/**
* User avatar image URL or empty string if the user does not have an avatar.
*
* This URL does not change when the underlying image content is updated. Because of this, browsers may
* cache the image, which can prevent the avatar from updating visually in web applications (such as
* React, Angular, etc.).
*
* To avoid caching issues, append a dynamic query parameter to the URL, such as the users's
* {@link lastModified | last modification date}. Since this date changes whenever the avatar is
* updated, the browser will correctly reload the new image when required.
*
* @example Usage in a React component
*
* ```js
* function UserAvatar({ user }) {
* // 'lastModified' is a timestamp representing when the user was last modified.
* const cacheBuster = user.lastModified;
*
* // Use a default image if the user does not have an avatar
* const imageSrc = user.avatarUrl
* ? `${user.avatarUrl}?t=${cacheBuster}`
* : "/assets/default-avatar.png";
*
* return <img src={imageSrc} alt="User avatar" />;
* }
* ```
*/
avatarUrl: string;
/**
* User last update time (UTC) in the format specified in
* {@link https://www.wikipedia.org/wiki/ISO_8601 | ISO 8601}.
*/
lastModified: string;
/**
* User full name. Contains the user's first and last name. If first name and last names are empty,
* contains the user name.
*/
fullName: string;
/**
* User initials. Contains a first letters of the user's first and last names. If first name and last
* names are empty, contains the first letter of the user name.
*/
initials: string;
}