package org.molikto.mindflow import kotlinx.html.js.onClickFunction import kotlinx.html.js.onKeyDownFunction import kotlinx.html.js.onKeyPressFunction import kotlinx.html.onClick import kotlinx.html.onKeyPress import kotlinx.html.tabIndex import org.molikto.mindflow.component.* import org.molikto.mindflow.keybinding.KeyBinding import org.w3c.dom.HTMLElement import org.w3c.dom.events.KeyboardEvent import react.dom.* import kotlin.browser.document import kotlin.browser.window fun main(args: Array) { window.onload = { val editor = Editor() val keyBinding = KeyBinding(editor) fun onKeyPress(event: KeyboardEvent) { if (!event.defaultPrevented && keyBinding.onKey(event.key)) { event.preventDefault() } } fun onKeyDown(event: KeyboardEvent) { if (!event.defaultPrevented && keyBinding.onKeyDown(event.key)) { event.preventDefault() } } val domRoot = document.getElementById("root")!! as HTMLElement // window.onkeypress = { // onKeyPress(it as KeyboardEvent) // } // // window.onkeydown = { // onKeyDown(it as KeyboardEvent) // } render(domRoot, { div { attrs { tabIndex = "0" onKeyPressFunction = { onKeyPress(it as KeyboardEvent) } onKeyDownFunction = { onKeyDown(it as KeyboardEvent) } } editor.root.render(this) } }) } }