diff --git a/src/main/scala/com/raquo/laminar/api/Implicits.scala b/src/main/scala/com/raquo/laminar/api/Implicits.scala index cac65dff..d9800b4f 100644 --- a/src/main/scala/com/raquo/laminar/api/Implicits.scala +++ b/src/main/scala/com/raquo/laminar/api/Implicits.scala @@ -62,7 +62,7 @@ trait Implicits extends Implicits.LowPriorityImplicits with CompositeValueMapper Setter(element => maybeSetter.foreach(_.apply(element))) } - /** Combine aa Seq of [[Setter]]-s into a single [[Setter]] that applies them all. */ + /** Combine a Seq of [[Setter]]-s into a single [[Setter]] that applies them all. */ implicit def seqToSetter[El <: ReactiveElement.Base](setters: collection.Seq[Setter[El]]): Setter[El] = { Setter(element => setters.foreach(_.apply(element))) } diff --git a/src/main/scala/com/raquo/laminar/inserters/ChildInserter.scala b/src/main/scala/com/raquo/laminar/inserters/ChildInserter.scala index 4b31079b..b4434f2f 100644 --- a/src/main/scala/com/raquo/laminar/inserters/ChildInserter.scala +++ b/src/main/scala/com/raquo/laminar/inserters/ChildInserter.scala @@ -3,7 +3,6 @@ package com.raquo.laminar.inserters import com.raquo.airstream.core.Observable import com.raquo.laminar.modifiers.RenderableNode import com.raquo.laminar.nodes.{ChildNode, ParentNode} -import org.scalajs.dom import scala.scalajs.js @@ -83,7 +82,7 @@ object ChildInserter { ctx.extraNodesMap.clear() ctx.extraNodesMap.set(newChildNode.ref, newChildNode) - ctx.extraNodes = newChildNode :: Nil + // ctx.extraNodes = ChildrenSeq.fromJsVector(JsVector(newChildNode)) ctx.extraNodeCount = 1 } diff --git a/src/main/scala/com/raquo/laminar/inserters/ChildTextInserter.scala b/src/main/scala/com/raquo/laminar/inserters/ChildTextInserter.scala index 08bfc1ae..dd4c0c25 100644 --- a/src/main/scala/com/raquo/laminar/inserters/ChildTextInserter.scala +++ b/src/main/scala/com/raquo/laminar/inserters/ChildTextInserter.scala @@ -54,7 +54,7 @@ object ChildTextInserter { // of elements in between different inserters (otherwise Laminar would lose track of the reserved // spot in such cases). ctx.extraNodesMap.clear() - ctx.extraNodes = Nil + // ctx.extraNodes = ChildrenSeq.empty ctx.extraNodeCount = 0 } } diff --git a/src/main/scala/com/raquo/laminar/inserters/ChildrenInserter.scala b/src/main/scala/com/raquo/laminar/inserters/ChildrenInserter.scala index 24e5aae7..9fb246f7 100644 --- a/src/main/scala/com/raquo/laminar/inserters/ChildrenInserter.scala +++ b/src/main/scala/com/raquo/laminar/inserters/ChildrenInserter.scala @@ -76,7 +76,7 @@ object ChildrenInserter { ctx.extraNodeCount, hooks ) - ctx.extraNodes = newChildren + // ctx.extraNodes = newChildren ctx.extraNodesMap = newChildrenMap } diff --git a/src/main/scala/com/raquo/laminar/inserters/InsertContext.scala b/src/main/scala/com/raquo/laminar/inserters/InsertContext.scala index 3c21b0c9..9d8ed16c 100644 --- a/src/main/scala/com/raquo/laminar/inserters/InsertContext.scala +++ b/src/main/scala/com/raquo/laminar/inserters/InsertContext.scala @@ -57,9 +57,8 @@ import scala.scalajs.js * context left by the previous inserter in onMountBind. * @param extraNodeCount - Number of child nodes in addition to the sentinel node. * Warning: can get out of sync with the real DOM! - * @param extraNodes - Ordered list of child nodes in addition to the sentinel node. - * Warning: can get out of sync with the real DOM! - * @param extraNodesMap - Map of child nodes, for more efficient search + * @param extraNodesMap - Map of child nodes in addition to the sentinel node, + * for more efficient search * Warning: can get out of sync with the real DOM! */ final class InsertContext( @@ -67,7 +66,7 @@ final class InsertContext( var sentinelNode: ChildNode.Base, var strictMode: Boolean, var extraNodeCount: Int, // This is separate from `extraNodesMap` for performance #TODO[Performance]: Check if this is still relevant with JsMap - var extraNodes: immutable.Seq[ChildNode.Base], + // var extraNodes: immutable.Seq[ChildNode.Base], var extraNodesMap: JsMap[dom.Node, ChildNode.Base] ) { @@ -107,7 +106,7 @@ final class InsertContext( // Convert loose mode context values to strict mode context values sentinelNode = newSentinelNode extraNodeCount = 1 - extraNodes = contentNode :: Nil + // extraNodes = ChildrenSeq.fromJsVector(JsVector(contentNode)) extraNodesMap.set(contentNode.ref, contentNode) // we initialized the map above } strictMode = true @@ -182,7 +181,7 @@ object InsertContext { sentinelNode = sentinelNode, strictMode = strictMode, extraNodeCount = 0, - extraNodes = Nil, + // extraNodes = ChildrenSeq.empty, extraNodesMap = if (strictMode) new JsMap() else null ) } diff --git a/src/test/scala/com/raquo/laminar/SyntaxSpec.scala b/src/test/scala/com/raquo/laminar/SyntaxSpec.scala index 6cae2ae9..14545c38 100644 --- a/src/test/scala/com/raquo/laminar/SyntaxSpec.scala +++ b/src/test/scala/com/raquo/laminar/SyntaxSpec.scala @@ -279,9 +279,9 @@ class SyntaxSpec extends UnitSpec { ) el.amend( - onMountBind(_ => observable --> ((num: Int) => num * 5)), - onMountBind(_ => signal --> ((num: Int) => num * 5)), - onMountBind(_ => stream --> ((num: Int) => num * 5)) + onMountBind(_ => observable --> ((num: Int) => noop(num * 5))), // #nc + onMountBind(_ => signal --> ((num: Int) => noop(num * 5))), + onMountBind(_ => stream --> ((num: Int) => noop(num * 5))) ) el.amend( diff --git a/websiteJS/src/main/scala/website/webcomponents/material/Button.scala b/websiteJS/src/main/scala/website/webcomponents/material/Button.scala index 7b3d4a8e..ecefdaa3 100644 --- a/websiteJS/src/main/scala/website/webcomponents/material/Button.scala +++ b/websiteJS/src/main/scala/website/webcomponents/material/Button.scala @@ -28,7 +28,7 @@ object Button { private val tag: HtmlTag[Ref] = htmlTag("mwc-button") - val id: HtmlProp[String] = idAttr + val id: HtmlProp[String, String] = idAttr val label: HtmlAttr[String] = htmlAttr("label", StringAsIsCodec) val raised: HtmlAttr[Boolean] = htmlAttr("raised", BooleanAsAttrPresenceCodec) diff --git a/websiteJS/src/main/scala/website/webcomponents/material/LinearProgressBar.scala b/websiteJS/src/main/scala/website/webcomponents/material/LinearProgressBar.scala index 932b958f..dce5570f 100644 --- a/websiteJS/src/main/scala/website/webcomponents/material/LinearProgressBar.scala +++ b/websiteJS/src/main/scala/website/webcomponents/material/LinearProgressBar.scala @@ -29,11 +29,11 @@ object LinearProgressBar { private val tag: HtmlTag[Ref] = htmlTag("mwc-linear-progress") - val indeterminate: HtmlProp[Boolean] = htmlProp("indeterminate", BooleanAsIsCodec) - val reverse: HtmlProp[Boolean] = htmlProp("reverse", BooleanAsIsCodec) - val closed: HtmlProp[Boolean] = htmlProp("closed", BooleanAsIsCodec) - val progress: HtmlProp[Double] = htmlProp("progress", DoubleAsIsCodec) - val buffer: HtmlProp[Double] = htmlProp("buffer", DoubleAsIsCodec) + val indeterminate: HtmlProp[Boolean, Boolean] = htmlProp("indeterminate", BooleanAsIsCodec) + val reverse: HtmlProp[Boolean, Boolean] = htmlProp("reverse", BooleanAsIsCodec) + val closed: HtmlProp[Boolean, Boolean] = htmlProp("closed", BooleanAsIsCodec) + val progress: HtmlProp[Double, Double] = htmlProp("progress", DoubleAsIsCodec) + val buffer: HtmlProp[Double, Double] = htmlProp("buffer", DoubleAsIsCodec) object styles { val mdcThemePrimary: StyleProp[String] = styleProp("--mdc-theme-primary") diff --git a/websiteJS/src/main/scala/website/webcomponents/material/Slider.scala b/websiteJS/src/main/scala/website/webcomponents/material/Slider.scala index 51876194..68de0e92 100644 --- a/websiteJS/src/main/scala/website/webcomponents/material/Slider.scala +++ b/websiteJS/src/main/scala/website/webcomponents/material/Slider.scala @@ -30,12 +30,12 @@ object Slider { private val tag: HtmlTag[Ref] = htmlTag("mwc-slider") - val pin: HtmlProp[Boolean] = htmlProp("pin", BooleanAsIsCodec) - val markers: HtmlProp[Boolean] = htmlProp("markers", BooleanAsIsCodec) - val value: HtmlProp[Double] = htmlProp("value", DoubleAsIsCodec) - val min: HtmlProp[Double] = htmlProp("min", DoubleAsIsCodec) - val max: HtmlProp[Double] = htmlProp("max", DoubleAsIsCodec) - val step: HtmlProp[Double] = htmlProp("step", DoubleAsIsCodec) + val pin: HtmlProp[Boolean, Boolean] = htmlProp("pin", BooleanAsIsCodec) + val markers: HtmlProp[Boolean, Boolean] = htmlProp("markers", BooleanAsIsCodec) + val value: HtmlProp[Double, Double] = htmlProp("value", DoubleAsIsCodec) + val min: HtmlProp[Double, Double] = htmlProp("min", DoubleAsIsCodec) + val max: HtmlProp[Double, Double] = htmlProp("max", DoubleAsIsCodec) + val step: HtmlProp[Double, Double] = htmlProp("step", DoubleAsIsCodec) val onInput: EventProp[dom.Event] = eventProp("input")