Skip to content
This repository was archived by the owner on Feb 10, 2023. It is now read-only.

Commit ba06202

Browse files
authored
Merge pull request #164 from cquiroz/dropdown-text
Upgrade SUIR and add DropdownText
2 parents 9e30ae4 + 1dbf6d6 commit ba06202

File tree

8 files changed

+119
-9
lines changed

8 files changed

+119
-9
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changes
22

3+
## 0.6.1
4+
5+
* Upgrade react-semanticui to 1.1.0
6+
* Upgrade to react-common 0.9.6
7+
* Upgrade to scalajs-react 1.7.4
8+
39
## 0.6.0
410

511
* Upgrade react-semanticui to 1.0.0

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
val reactJS = "16.13.1"
22
val scalaJsReact = "1.7.4"
33
val FUILess = "2.8.6"
4-
val reactSUI = "1.0.0"
4+
val reactSUI = "1.1.0"
55
val Toasts = "0.6.5"
66

77
parallelExecution in (ThisBuild, Test) := false
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package react.semanticui.modules.dropdown
2+
3+
import scala.scalajs.js
4+
import js.annotation._
5+
import japgolly.scalajs.react._
6+
import japgolly.scalajs.react.raw.React
7+
import japgolly.scalajs.react.vdom.html_<^._
8+
import japgolly.scalajs.react.JsFnComponent
9+
import react.semanticui._
10+
import react.semanticui.raw._
11+
import react.common._
12+
import japgolly.scalajs.react.vdom.TagMod
13+
14+
final case class DropdownText(
15+
as: js.UndefOr[AsC] = js.undefined,
16+
className: js.UndefOr[String] = js.undefined,
17+
clazz: js.UndefOr[Css] = js.undefined,
18+
content: js.UndefOr[ShorthandS[VdomNode]] = js.undefined,
19+
override val modifiers: Seq[TagMod] = Seq.empty
20+
) extends GenericFnComponentPAC[DropdownText.DropdownTextProps, DropdownText] {
21+
override protected def cprops = DropdownText.props(this)
22+
override protected val component = DropdownText.component
23+
override def addModifiers(modifiers: Seq[TagMod]) = copy(modifiers = this.modifiers ++ modifiers)
24+
}
25+
26+
object DropdownText {
27+
@js.native
28+
@JSImport("semantic-ui-react", "DropdownText")
29+
object RawComponent extends js.Function1[js.Any, js.Any] {
30+
def apply(i: js.Any): js.Any = js.native
31+
}
32+
33+
@js.native
34+
trait DropdownTextProps extends js.Object {
35+
@JSBracketAccess
36+
def apply(key: String): js.Any = js.native
37+
38+
@JSBracketAccess
39+
def update(key: String, v: js.Any): Unit = js.native
40+
41+
/** An element type to render as (string or function). */
42+
var as: js.UndefOr[AsT] = js.native
43+
44+
/** Primary content. */
45+
var children: js.UndefOr[React.Node] = js.native
46+
47+
/** Additional classes. */
48+
var className: js.UndefOr[String] = js.native
49+
50+
/** Shorthand for primary content. */
51+
var content: js.UndefOr[SemanticShorthandContent] = js.native
52+
53+
}
54+
55+
def props(q: DropdownText): DropdownTextProps =
56+
rawprops(q.as, q.className, q.clazz, q.content)
57+
58+
def rawprops(
59+
as: js.UndefOr[AsC] = js.undefined,
60+
className: js.UndefOr[String] = js.undefined,
61+
clazz: js.UndefOr[Css] = js.undefined,
62+
content: js.UndefOr[ShorthandS[VdomNode]] = js.undefined
63+
): DropdownTextProps = {
64+
val p = as.toJsObject[DropdownTextProps]
65+
as.toJs.foreach(v => p.as = v)
66+
(className, clazz).toJs.foreach(v => p.className = v)
67+
content.toJs.foreach(v => p.content = v)
68+
p
69+
}
70+
71+
private val component =
72+
JsFnComponent[DropdownTextProps, Children.Varargs](RawComponent)
73+
74+
def apply(children: TagMod*): DropdownText =
75+
new DropdownText(modifiers = children)
76+
}

facade/src/test/scala/react/semanticui/addons/select/SelectTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object SelectTests extends TestSuite {
1414
select.renderIntoDOM(mountNode)
1515
val html = mountNode.outerHTML
1616
assert(
17-
html == """<div><div role="listbox" aria-expanded="false" class="ui selection dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item"><span class="text">def</span></div></div></div></div>"""
17+
html == """<div><div role="listbox" aria-expanded="false" class="ui selection dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item"><span class="text">def</span></div></div></div></div>"""
1818
)
1919
}
2020
}

facade/src/test/scala/react/semanticui/collections/form/FormDropdownTests.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ object FormDropdownTests extends TestSuite {
1212
ReactTestUtils.withNewBodyElement { mountNode =>
1313
dropdown.renderIntoDOM(mountNode)
1414
assert(
15-
mountNode.outerHTML == """<div><div class="field"><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div></div>"""
15+
mountNode.outerHTML == """<div><div class="field"><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div></div>"""
1616
)
1717
}
1818
}
@@ -24,7 +24,7 @@ object FormDropdownTests extends TestSuite {
2424
dropdown.renderIntoDOM(mountNode)
2525
val html = mountNode.outerHTML
2626
assert(
27-
html == """<div><div class="two wide field"><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div></div>"""
27+
html == """<div><div class="two wide field"><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div></div>"""
2828
)
2929
}
3030
}

facade/src/test/scala/react/semanticui/collections/form/FormSelectTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ object FormSelectTests extends TestSuite {
1515
select.renderIntoDOM(mountNode)
1616
val html = mountNode.outerHTML
1717
assert(
18-
html == """<div><div class="two wide field"><div role="listbox" aria-expanded="false" class="ui selection dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div></div>"""
18+
html == """<div><div class="two wide field"><div role="listbox" aria-expanded="false" class="ui selection dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div></div>"""
1919
)
2020
}
2121
}

facade/src/test/scala/react/semanticui/modules/dropdown/DropdownTests.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ object DropdownTests extends TestSuite {
1010
ReactTestUtils.withNewBodyElement { mountNode =>
1111
dropdown.renderIntoDOM(mountNode)
1212
assert(
13-
mountNode.outerHTML == """<div><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div>"""
13+
mountNode.outerHTML == """<div><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div>"""
1414
)
1515
}
1616
}
@@ -22,7 +22,7 @@ object DropdownTests extends TestSuite {
2222
dropdown.renderIntoDOM(mountNode)
2323
val html = mountNode.outerHTML
2424
assert(
25-
html == """<div><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div>"""
25+
html == """<div><div role="listbox" aria-expanded="false" class="ui dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div>"""
2626
)
2727
}
2828
}
@@ -41,7 +41,7 @@ object DropdownTests extends TestSuite {
4141
dropdown.renderIntoDOM(mountNode)
4242
val html = mountNode.outerHTML
4343
assert(
44-
html == """<div><div role="combobox" aria-expanded="true" class="ui active visible search dropdown"><input aria-autocomplete="list" autocomplete="off" class="search" tabindex="0" type="text" value=""><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div role="listbox" class="visible menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div>"""
44+
html == """<div><div role="combobox" aria-expanded="true" class="ui active visible search dropdown"><input aria-autocomplete="list" autocomplete="off" class="search" tabindex="0" type="text" value=""><div aria-atomic="true" aria-live="polite" role="alert" class="divider text"></div><i aria-hidden="true" class="dropdown icon"></i><div role="listbox" class="visible menu transition"><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="true" class="selected item">abc</div><div style="pointer-events: all;" role="option" aria-checked="false" aria-selected="false" class="item"><span class="text">def</span></div></div></div></div>"""
4545
)
4646
}
4747
}
@@ -50,7 +50,7 @@ object DropdownTests extends TestSuite {
5050
ReactTestUtils.withNewBodyElement { mountNode =>
5151
dropdown.renderIntoDOM(mountNode)
5252
assert(
53-
mountNode.outerHTML == """<div><div role="listbox" aria-expanded="false" class="ui basic dropdown" tabindex="0"><div class="text" role="alert" aria-live="polite" aria-atomic="true"></div><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div>"""
53+
mountNode.outerHTML == """<div><div role="listbox" aria-expanded="false" class="ui basic dropdown" tabindex="0"><i aria-hidden="true" class="dropdown icon"></i><div class="menu transition"></div></div></div>"""
5454
)
5555
}
5656
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package react.semanticui.modules.dropdown
2+
3+
import utest._
4+
import japgolly.scalajs.react.test._
5+
import japgolly.scalajs.react.vdom.html_<^._
6+
7+
object DropdownTextTests extends TestSuite {
8+
val tests = Tests {
9+
test("text") {
10+
val header = DropdownText()
11+
ReactTestUtils.withNewBodyElement { mountNode =>
12+
header.renderIntoDOM(mountNode)
13+
assert(
14+
mountNode.innerHTML == """<div aria-atomic="true" aria-live="polite" role="alert" class="divider"></div>"""
15+
)
16+
}
17+
}
18+
test("textContent") {
19+
val header = DropdownText("content")
20+
ReactTestUtils.withNewBodyElement { mountNode =>
21+
header.renderIntoDOM(mountNode)
22+
assert(
23+
mountNode.innerHTML == """<div aria-atomic="true" aria-live="polite" role="alert" class="divider">content</div>"""
24+
)
25+
}
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)