aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/component/widget/Input.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/reading/component/widget/Input.scala')
-rw-r--r--src/main/scala/reading/component/widget/Input.scala23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/main/scala/reading/component/widget/Input.scala b/src/main/scala/reading/component/widget/Input.scala
index 7dac47a..1a1157e 100644
--- a/src/main/scala/reading/component/widget/Input.scala
+++ b/src/main/scala/reading/component/widget/Input.scala
@@ -2,14 +2,15 @@ package reading.component.widget
import scalatags.JsDom.all._
-import org.scalajs.dom.KeyboardEvent
import org.scalajs.dom.html.Input
+import org.scalajs.dom.KeyboardEvent
import scalacss.Defaults._
import scalacss.ScalatagsCss._
import rx._
+import reading.component.style.{ Color => C }
import reading.component.widget.style.{ Input => InputStyle }
object Input {
@@ -17,28 +18,38 @@ object Input {
style: StyleA,
query: Var[String],
label: String = "",
- onEnter: => Unit = ()
+ onEnter: => Unit = (),
+ maxLength: Option[Int] = None
)(
implicit
ctx: Ctx.Owner
): Frag = {
val inputBox = input(
- InputStyle.render,
InputStyle.input,
- style,
placeholder := label,
onkeyup := { (e: KeyboardEvent) =>
val input = e.target.asInstanceOf[Input]
query() = input.value
input.value = input.value
if (e.keyCode == 13) onEnter
- }
+ },
+ maxlength := maxLength.map(_.toString).getOrElse("")
).render
query.trigger {
inputBox.value = query.now
}
- inputBox
+ div(
+ InputStyle.render,
+ InputStyle.parent,
+ style,
+ inputBox,
+ span(
+ InputStyle.clear,
+ onclick := (() => query() = ""),
+ Cross(15.px, C.gray.value)
+ )
+ )
}
}