package dev.inmo.postssystem.client.fsm.ui import dev.inmo.postssystem.client.ui.fsm.UIFSMHandler import dev.inmo.postssystem.client.ui.fsm.UIFSMState import dev.inmo.postssystem.client.utils.HTMLViewContainer import dev.inmo.micro_utils.fsm.common.StatesMachine import org.w3c.dom.HTMLElement abstract class JSView : UIFSMHandler { open suspend fun StatesMachine.safeHandleState( htmlElement: HTMLElement, container: HTMLViewContainer, state: T ): UIFSMState? = null override suspend fun StatesMachine.safeHandleState(state: T): UIFSMState? { return HTMLViewContainer.from(state.context) ?.let { safeHandleState(it.htmlElement ?: return null, it, state) } } }