Skip to content

Тосты

Для показа уведомлений используются четыре метода по типу сообщения (успех, информация, предупреждение, ошибка) с общим набором параметров.

Контракт

Четыре метода по типу сообщения; одинаковый набор параметров: текст, опции и необязательный заголовок.

ts
/**
 * Кастомное тело тоста: компонент host-приложения и его пропсы.
 * Рендерится вместо текста; компонент получает пропс `message` (весь тост)
 * и может закрыть себя эмитом `close`.
 */
export interface ToastContent {
  component: Component;
  props?: Record<string, unknown>;
}

/**
 * Опции отдельного тоста.
 */
export interface ToastLibUIOptions {
  /** Время жизни тоста в миллисекундах; 0 — не скрывать автоматически (sticky) */
  life?: number;
  /** Показывать ли крестик закрытия */
  closable?: boolean;
  /** Кастомное тело: компонент host'а вместо текста */
  content?: ToastContent;
  [key: string]: any;
}

/**
 * @doc_id toast.contract
 * @description
 * Четыре метода по типу сообщения; одинаковый набор параметров: текст,
 * опции и необязательный заголовок.
 */
export type TToastLibUI = {
  /**
   * Тост об успешной операции
   * @param message - Детальное описание сообщения
   * @param options - Дополнительные параметры для настройки тоста
   * @param header - Заголовок сообщения
   */
  successToast: (message: string, options?: ToastLibUIOptions, header?: string) => void;
  /**
   * Тост с информационным сообщением
   * @param message - Детальное описание сообщения
   * @param options - Дополнительные параметры для настройки тоста
   * @param header - Заголовок сообщения
   */
  infoToast: (message: string, options?: ToastLibUIOptions, header?: string) => void;
  /**
   * Тост с предупреждением
   * @param message - Детальное описание сообщения
   * @param options - Дополнительные параметры для настройки тоста
   * @param header - Заголовок сообщения
   */
  warnToast: (message: string, options?: ToastLibUIOptions, header?: string) => void;
  /**
   * Тост об ошибке
   * @param message - Детальное описание сообщения
   * @param options - Дополнительные параметры для настройки тоста
   * @param header - Заголовок сообщения
   */
  errorToast: (message: string, options?: ToastLibUIOptions, header?: string) => void;
};

Дедупликация

Сообщения с одинаковыми названиями показываются на экране единоразово. За это поведение отвечает ключ дедупликации: severity, заголовок и нормализованный текст.

Уведомление об ошибках API

Тосты автоматически отображают ошибки сервера, если сервер в ответе возвращает коды i18n формата: поле code (строка), поле codes (массив строк) на любой глубине тела error.details.

Точечная синхронизация в дереве

Объект проверяется перед отправкой при точечной синхронизации из дерева: при ошибке валидации показывается тост с текстом ошибки, что блокирует отправку объекта на сервер.

Mentioned In

None yet.