aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/component/widget/Input.scala
diff options
context:
space:
mode:
authorJoris2017-02-25 22:25:03 +0100
committerJoris2017-02-25 22:25:03 +0100
commitbbe5788cdcfbb26358566bfc74426ec38029cc73 (patch)
tree27607f6b5a667c264f11aeb10708d6d1dadb0fde /src/main/scala/reading/component/widget/Input.scala
parentf1de0dd7632eb29a40ea1f5cf136ab43ee945926 (diff)
downloadreading-bbe5788cdcfbb26358566bfc74426ec38029cc73.tar.gz
reading-bbe5788cdcfbb26358566bfc74426ec38029cc73.tar.bz2
reading-bbe5788cdcfbb26358566bfc74426ec38029cc73.zip
Add detailed book page instead of a modal.
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)
+ )
+ )
}
}