vasaykh2 / BotKits

1 stars 0 forks source link

ConditionalBlock. Работа со стором #73

Open K0nstant1nS opened 11 months ago

K0nstant1nS commented 11 months ago

1) Приводим блок к его итоговому виду. Всё должно выглядеть как на макете и адекватно работать.

2) Все изменения в блоке должны записываться в стор reactFlow. Не знаешь как это делать? Сейчас расскажу инструментарий:


a) useReactFlow - хук, импортируется из 'reactflow'. Представляет из себя функцию, вызов которой возвращает нам объект с полями setNodes, getNodes и т.д.. Нам нужны только 2 перечисленных.

const { setNodes, getNodes } = useReactFlow();

b) useNodeId - импортируется из 'reactflow'. Вызов возвращает id ноды, в которой вызван.

const id = useNodeId();

UPD: В utils прописал функцию setFlowData, пример её работы можно посмотреть в messageBlock. На вход она принимает массив из последовательных полей в data-объекте и на выходе получает функцию для onChange, записывающую знаение в стор.


При изменении каких-либо данный внутри блока - данные должны изменяться в сторе. Соответственно мы получаем список имеющихся нод (getNodes), находим нужную ноду(map) по id, меняем в нужной ноде данные, которые меняет пользователь и записывает (setNodes) список нод с измененной нодой.

P.S. После выполнения работы не должно сотаваться ошибок в консоли, связанных с работой блока. Если для выполнения задания нужно поправить типизацию - правьте. Удачной работы!