Вопрос в том, действительно ли вам нужен весь промежуточный стейт да ещё и разпарсеный на стороне элм... у нас в приложении есть модалка, которая даёт пользователю выбрать его камеру, микрофон, аудио оутпут, посмотреть превью всего этого добра. Изначально сделали её на элме с портами, получилось отвратительно, все криво косо. Пришлось переделать... и сделали так:
Элм передаёт в вэб компонент какие-то начальные атрибуты, там есть видео вообще или нет... и все... дальше пользователь крутит вертит переключает флажки настраивает проверяет и все это элм нисколько не волнует... и только когда мы уже готовы и жмём сабмит кнопку, Стэйт летит на элм