Контролеры

Контроллеры — это вспомогательные компоненты, которые отвечают за получение, подготовку и предоставление данных из одного или нескольких источников.

<ya-kit-blog-detail-controller />

Вспомогательный компонент для загрузки статьи и размещения ее в контексте шаблона.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

BlogModel, null

Загруженная модель с данными или null.

Нет

Связанные типы: BlogModel.

<ya-kit-blog-listing-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

per-page

number

Количество карточек на странице.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

BlogListingModelr

Загруженная модель с данными.

Нет

quantity

number

Текущее количество товара в корзине пользователя

Да

onPageChange

(page: number) => void

Функция обновления активной страницы.

Да

Связанные типы: BlogListingModel.

<ya-kit-breadcrumbs-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

BreadcrumbModel[]

Массив загруженных моделей с данными.

Нет

Связанные типы: BreadcrumbModel.

<ya-kit-categories-controller />

Вспомогательный компонент для загрузки данных о дереве категорий и размещения их в контексте шаблона.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

include‑images

boolean

Включить/исключить из ответа изображения.

Примечание

Включение в ответ изображений увеличит время загрузки данных.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

CategoryModel[]

Список загруженных категорий вместе с дочерними.

Нет

Связанные типы: CategoryModel.

<ya-kit-collections-listing-controller />

Вспомогательный компонент для загрузки данных о коллекциях и размещения их в контексте шаблона.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

source

all, collections, categories

Источник данных. По умолчанию: all:

  • all — категории и коллекции.
  • collections — только коллекции.
  • categories — только категории.
Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

CollectionModel[]

Список загруженных коллекций.

Нет

Связанные типы: CollectionModel.

<ya-kit-company-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

CompanyModel, null

Загруженная модель с данными или null.

Нет

Связанные типы: CompanyModel.

<ya-kit-delivery-options-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

location

RegionModel

Текущая локация пользователя

product

ProductVariantModel

Выбранный вариант продукта

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

DeliveryOptionModel[]

Загруженная модель с данными.

Нет

Связанные типы: RegionModel, ProductVariantModel, DeliveryOptionModel.

<ya-kit-drag-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

is‑disabled

boolean

Отключает возможность перетаскивания.

axis

x, y, both

Ограничение движения по осям. По умолчанию — both:

  • x — только горизонтальное перемещение.
  • y — только вертикальное перемещение.
  • both — свободное перемещение в обоих направлениях.
Структура добавленного объекта

Название

Тип

Описание

Обязательное

position

Nullable<Position>

Текущая позиция перетаскиваемого элемента относительно контейнера. До первого перемещения — null.

Нет

progressHorizontal

Nullable<number>

Прогресс горизонтального перемещения от 0 до 1. До первого перемещения — null.

Нет

progressVertical

Nullable<number>

Прогресс вертикального перемещения от 0 до 1. До первого перемещения — null.

Нет

isDragging

boolean

Индикатор, указывающий, активно ли перетаскивание в данный момент.

Да

elementRef

RefObject<HTMLElement>

React ref‑ссылка на перетаскиваемый DOM‑элемент для отслеживания позиций.

Да

containerRef

RefObject<HTMLElement>

React ref‑ссылка на контейнер, определяющий границы перемещения.

Да

<ya-kit-email-subscription-controller />

Вспомогательный компонент для управления формой подписки на email-рассылку.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

enable-agreement

boolean

Включает/отключает обязательное согласие пользователя.

promocode

PromocodeModel, null

Промокод, который будет отправлен при подписке.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки/отправки данных, false после завершения.

Да

model

EmailSubscriptionModel / null

Загруженная модель с данными или null.

Да

onEmailChange

(email: string) => void

Обработчик изменения значения email.

Да

onAgreementChange

(isAgreed: boolean) => void

Обработчик изменения значения признака согласия.

Да

onSubmit

() => void

Валидирует и отправляет форму подписки на сервер.

Да

Связанные типы: PromocodeModel, EmailSubscriptionModel.

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

tags

string[]

Массив тегов для фильтрации статей. Если не указано, загружаются статьи без фильтрации.

count

number

Количество статей для загрузки

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

BlogModel[], null

Загруженная модель с данными или null.

Нет

Связанные типы: BlogModel.

Вспомогательный компонент для загрузки коллекции товаров из различных источников данных и размещения их в контексте шаблона. Компонент поддерживает загрузку товаров из категорий, коллекций, релевантных товаров и недавно просмотренных товаров.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

data-source

ProductsSource

Объект с информацией об источнике данных товаров

count

number

Количество товаров для загрузки

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

ProductVariantModel[], null

Загруженная модель с данными или null.

Нет

Связанные типы: ProductVariantModel.

<ya-kit-location-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

RegionModel, null

Загруженная модель с данными или null.

Нет

onLocationSelect

() => void

Функция для выбора новой локации пользователя.

Да

Связанные типы: RegionModel.

<ya-kit-menu-controller />

Вспомогательный компонент для загрузки модели меню и размещения их в контексте шаблона. Компонент автоматически извлекает данные меню по указанным идентификаторам и предоставляет их дочерним компонентам через контекст.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

menu

MenuId, MenuId[]

Идентификатор меню или массив идентификаторов для загрузки

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

MenuModel, MenuModel[], null

Загруженная модель с данными или null:

  • Для одного MenuId — один объект MenuModel.
  • Для массива MenuId[] — массив объектов MenuModel[] в порядке переданных идентификаторов.

Нет

Пример использования
<ya-kit-menu-controller menu="{{settings.menu}}" as="controller">
    {{#if controller.model}}
        <ya-kit-text size="xl">{{controller.model.title}}</ya-kit-text>
        <div class="menu__items">
            {{#each controller.model.items as |item|}}
                <ya-kit-link to="{{item.url}}">{{item.title}}</ya-kit-link>
            {{/each}}
        </div>
    {{/if}}
</ya-kit-menu-controller>

Данный пример загрузит и выведет первый уровень меню.

Связанные типы: MenuModel, MenuItemModel.

<ya-kit-product-detail-controller />

Вспомогательный компонент для загрузки карточки товара и размещения их в контексте шаблона.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

ProductDetailModel, null

Загруженная модель с данными или null.

Нет

onVariantSelect

(id: string, value: string) => void

Функция выбора нового варианта товара.

Да

onAddVariantToCart

() => void

Функция добавления текущего варианта товара в корзину.

Да

onUpdateVariantQuantity

(quantity: number) => void

Функция изменения количества текущего варианта товара в корзине.

Да

onRemoveVariantFromCart

() => void

Функция удаления текущего варианта товара из корзины.

Да

Связанные типы: ProductDetailModel.

<ya-kit-products-listing-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

per-page

number

Количество карточек на странице

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

ProductsListingModel

Загруженная модель с данными.

Нет

quantity

number

Текущее количество товара в корзине пользователя.

Да

onPageChange

(page: number) => void

Функция обновления активной страницы.

Да

onFiltersChange

() => void

Функция обновления выставленных фильтров.

Да

Связанные типы: ProductsListingModel.

<ya-kit-product-snippet-controller />

Вспомогательный компонент для работы с отдельными сниппетами товаров.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

product

ProductVariantModel

Массив тегов для фильтрации статей. Если не указано, загружаются статьи без фильтрации

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

ProductVariantModel

Загруженная модель с данными.

Нет

quantity

number

Текущее количество товара в корзине пользователя.

Да

onUpdateQuantity

(quantity: number) => void

Функция обновления количества товара в корзине.

Да

onRemoveFromCart

() => void

Функция удаления товара из корзины.

Да

onAddToCart

() => void

Функция добавления товара в корзину.

Да

onToggleFavourite

() => void

Функция добавления/удаления товара в избранном.

Да

Связанные типы: ProductVariantModel.

<ya-kit-promocode-controller />

Вспомогательный компонент для загрузки данных о промокоде и размещения их в контексте шаблона.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

promocode‑id

string

Идентификатор промокода для загрузки.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

PromocodeModel / null

Загруженная модель с данными или null.

Нет

Связанные типы: PromocodeModel.

<ya-kit-self-pickup-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

location

RegionModel

Текущая локация пользователя

product

ProductVariantModel

Выбранный вариант продукта

quantity

number

Необходимо количество

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

SelfPickupModel[]

Загруженная модель с данными.

Нет

Связанные типы: RegionModel, ProductVariantModel, SelfPickupModel.

<ya-kit-shopping-cart-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

ShoppingCartModel, null

Загруженная модель с данными корзины или null.

Нет

Связанные типы: ShoppingCartModel.

<ya-kit-toggle-controller />

Вспомогательный компонент управления скрытием/раскрытием.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

initial-value

boolean

Первоначальное состояние при монтировании компонента.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isOpen

boolean

Текущее состояние компонента.

Да

onToggle

() => void

Переключает состояние на противоположное.

Да

onSetTruthy

() => void

Устанавливает состояние в true.

Да

onSetFalsy

() => void

Устанавливает состояние в false.

Да

<ya-kit-user-controller />

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

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные

Структура добавленного объекта

Название

Тип

Описание

Обязательное

isLoading

boolean

true во время загрузки данных, false после завершения.

Да

model

UserModel, null

Загруженная модель с данными или null.

Нет

Связанные типы: UserModel, RegionModel.

<ya-kit-value-controller />

Вспомогательный контроллер для хранения значений переменных.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

initial-value

unknown

Первоначальное значение переменной.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

value

unknown

Текущее значение переменной.

Да

onChange

(value: unknown) => void

Выставляет новое значение переменной.

Да

makeChangeHandler

(value: unknown) => VoidFunction

Создает обработчик, который будет устанавливать указанное значение.

Да

<ya-kit-resize-controller />

Вспомогательный компонент для автоматического отслеживания размеров элемента с использованием ResizeObserver API. Предоставляет информацию о ширине и высоте элемента в реальном времени при изменении его размеров.

Название

Тип

Описание

as

string

Имя ключа в контексте, под которым будут доступны загруженные данные.

Структура добавленного объекта

Название

Тип

Описание

Обязательное

size.width

number, null

Ширина отслеживаемого элемента или null до первого измерения.

Нет.

size.height

number, null

Высота отслеживаемого элемента или null до первого измерения.

Нет.

Обратиться в службу поддержки

Написать в чат

Написать письмо