Improve support of navbars

This commit is contained in:
2022-05-19 13:21:39 +06:00
parent 990bd6385f
commit 29efe4b5cd
4 changed files with 99 additions and 18 deletions

View File

@@ -1,11 +1,25 @@
package dev.inmo.jsuikit.elements
import androidx.compose.runtime.Composable
import dev.inmo.jsuikit.modifiers.UIKitModifier
import dev.inmo.jsuikit.modifiers.include
import dev.inmo.jsuikit.modifiers.*
import org.jetbrains.compose.web.dom.*
import org.w3c.dom.HTMLElement
@Composable
fun Navbar(
attributesCustomizer: AttrBuilderContext<HTMLElement> = {},
contentBuilder: ContentBuilder<HTMLElement>
) {
Nav(
{
include(UIKitNavbar, UIKitNavbar.Container)
attributesCustomizer()
}
) {
contentBuilder
}
}
@Composable
fun Navbar(
leftBuilder: NavbarNavBuilder? = null,
@@ -14,22 +28,20 @@ fun Navbar(
vararg navModifiers: UIKitModifier,
attributesCustomizer: AttrBuilderContext<HTMLElement> = {},
) {
Nav(
Navbar(
{
attr("uk-navbar", "")
classes("uk-navbar-container", "uk-navbar")
include(*navModifiers)
attributesCustomizer()
}
) {
leftBuilder ?.let {
Div({ classes("uk-navbar-left") }) { it.draw() }
Div({ include(UIKitNavbar.Alignment.Left) }) { it.draw() }
}
centerBuilder ?.let {
Div({ classes("uk-navbar-center") }) { it.draw() }
Div({ include(UIKitNavbar.Alignment.Center) }) { it.draw() }
}
rightBuilder ?.let {
Div({ classes("uk-navbar-right") }) { it.draw() }
Div({ include(UIKitNavbar.Alignment.Right) }) { it.draw() }
}
}
}

View File

@@ -1,8 +1,7 @@
package dev.inmo.jsuikit.elements
import androidx.compose.runtime.Composable
import dev.inmo.jsuikit.modifiers.UIKitModifier
import dev.inmo.jsuikit.modifiers.include
import dev.inmo.jsuikit.modifiers.*
import org.jetbrains.compose.web.attributes.AttrsScope
import org.jetbrains.compose.web.dom.*
import org.w3c.dom.HTMLLIElement
@@ -46,8 +45,7 @@ class NavbarNavBuilder(
fun draw() {
Ul(
{
classes("uk-navbar-nav")
include(*modifiers)
include(UIKitNavbar.Nav, *modifiers)
attributesCustomizer()
}
) {