Фильтрация и отображение

Назначение

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

Функциональность

Основная функциональность реализована в компоненте CollectionTab, который:

Компонент CollectibleCard отвечает за отображение каждой карточки элементаля и включает:

Пример вызова обновления уровня с подтверждением и последующей вибрацией:

const handleConfirmLevelUp = () => {
  if (selectedElemental && selectedDisplayData) {
    onLevelUpElemental(selectedElemental.id);
    setShowConfirmModal(false);
    // Запуск вибрации с учётом типа улучшения
    const vibrationFunc = window.triggerCardVibration?.[selectedElemental.id];
    if (vibrationFunc) {
      vibrationFunc(selectedDisplayData.canUpgradeRarity);
    }
  }
};

Взаимосвязь с родительской темой и другими подсистемами

Подтематика фильтрации и отображения является неотъемлемой частью управления коллекцией элементалей. Она дополняет остальные подсистемы родительской темы, такие как прокачка и улучшения, предоставляя визуальный и интерактивный интерфейс для взаимодействия с элементалями.

Таким образом, фильтрация и отображение выступают связующим звеном между хранением коллекции, её развитием и визуальной презентацией для игрока, создавая единый, удобный пользовательский опыт.

Диаграмма: Основной поток фильтрации и отображения коллекции

flowchart TD
    Start[Начало рендера CollectionTab]
    LoadCollection[Загрузка коллекции игрока]
    ApplyFilters[Применение фильтров по стихиям и редкости]
    SortElementals[Сортировка по редкости и стихии]
    RenderCards[Отрисовка карточек CollectibleCard]
    UserClicksLevelUp[Пользователь нажимает "Level Up" на карточке]
    ShowConfirmModal[Показ модального окна подтверждения]
    UserConfirms[Пользователь подтверждает прокачку]
    UpdateLevel[Вызов onLevelUpElemental из родителя]
    TriggerVibration[Запуск вибрации карточки]
    CloseModal[Закрытие модального окна]
    UpdateUI[Обновление UI с новой информацией]

    Start --> LoadCollection --> ApplyFilters --> SortElementals --> RenderCards
    RenderCards --> UserClicksLevelUp --> ShowConfirmModal
    ShowConfirmModal --> UserConfirms --> UpdateLevel --> TriggerVibration --> CloseModal --> UpdateUI

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