Фактическая связь конкретного элемента с переходом ранее отсутствовала. Команда destination (next)
запускала на бэке алгоритм определения следующего экрана, проверяющий исключительно условия, установленные в админке.
Далее конкретные события на бэке будут привязаны к определенным элементам (это может быть нода, экран, виджет, поле). Главное, что бэк должен получать id элемента, с которым было произведено действие.
action
- действие, которое необходимо совершить (переход далее, назад, асинхнонный запрос, изменение значения какого-то property)
event
- событие (click, hover, …). Событие является триггером какого-то action
Action не обязательно должен быть связан с обращением куда-то. Это может быть, например, просто изменение какого-то параметра на экране.
Один event одного элемента может быть триггером нескольких actions.
Ранее у всех кнопок достаточно было использовать property action = next/previous. Этот property пока не будет удаляться, а ранее принимаемые по нему переходы пока будут работать.
Далее же в настройки соответствующих элементов (или даже на уровне с настройками) появится следующая структура:
{
"id": 634278,
"order": 5,
"nodeType": "button.example",
"events": [
{
"eventId": 3,
"event": "click",
"action": "goto",
"param": ""
},
{
"eventId": 2,
"event": "hover",
"action": "async",
"param": "<https://example.com>"
}
],
"properties": {
"visibility": "true",
"align": "left",
"text": "<span class='font-text-interlinear'><span class='color-text-minor-second'>hello!</span></span>",
"action": "next"
}
}
Пример полного JSON степ с action
Потенциальные action:
next
- попытка перехода вперед, когда она не связана с конкретным элементом
prev
- попытка перехода назад, когда не связана с конкретным элементом