Перейти к содержимому
Перейти к содержимому
Animated Fluent Emojis
Меню
Русский

Предзагрузка для пикера

Прогрейте manifest и sprite sheets до открытия пикера эмодзи, чтобы эмодзи появлялись без заметной загрузки.

Прогрейте manifest заранее

preloadEmojis без аргументов начинает загрузку manifest ещё до рендера любого Emoji. Он никогда не отклоняется, поэтому достаточно void:

import { preloadEmojis } from 'animated-fluent-emojis'
void preloadEmojis()

Вызывайте его, когда пользователь, вероятно, откроет пикер: например, при наведении или фокусе на кнопку-триггер либо при монтировании оболочки приложения.

Прогрейте sprite sheets, которые вы покажете

Передайте id, чтобы запросить их sprite sheets, когда manifest готов. Для эмодзи с оттенками кожи передайте skinTone, чтобы прогреть вариант, который увидит пользователь:

const quickReactions = ['1f44b_wavinghand', '1f525_fire', '1f389_partypopper']
function handlePickerTriggerHover() {
void preloadEmojis(quickReactions, { skinTone: 'medium' })
}

Прогревайте только те id, которые отрисуете первыми. Пикер с сотнями эмодзи не должен предзагружать их все; sprite sheets загружаются лениво (loading="lazy") по мере приближения к области просмотра. skinTone принимает одно из значений 'default', 'light', 'medium-light', 'medium', 'medium-dark' или 'dark'.

Сначала настройте asset site

Если вы используете собственный asset site, вызовите configureEmojis перед preloadEmojis. Смена asset site после предзагрузки сбрасывает manifest, и прогретые запросы пропадают впустую.

Когда сеть отказывает

Запрос manifest прекращается через 15 секунд. Неудачный manifest повторно запрашивается при следующем вызове preloadEmojis, при следующем монтировании или когда браузер снова подключается к сети, поэтому повторный вызов из триггера безопасен. См. Предзагрузка и Fallback.