mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2024-12-22 08:37:24 +00:00
improvements and fixes in Navbar and NavbarNav parts
This commit is contained in:
parent
ec584798ad
commit
6a652249c0
@ -2,7 +2,9 @@ package dev.inmo.jsuikit.elements
|
|||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import dev.inmo.jsuikit.modifiers.*
|
import dev.inmo.jsuikit.modifiers.*
|
||||||
|
import dev.inmo.jsuikit.utils.*
|
||||||
import org.jetbrains.compose.web.dom.*
|
import org.jetbrains.compose.web.dom.*
|
||||||
|
import org.w3c.dom.HTMLDivElement
|
||||||
import org.w3c.dom.HTMLElement
|
import org.w3c.dom.HTMLElement
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@ -20,9 +22,10 @@ fun Navbar(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("Will be removed soon. Use the variant with AttrsWithContentBuilders")
|
||||||
@Composable
|
@Composable
|
||||||
fun Navbar(
|
fun Navbar(
|
||||||
leftBuilder: NavbarNavBuilder? = null,
|
leftBuilder: NavbarNavBuilder?,
|
||||||
centerBuilder: NavbarNavBuilder? = null,
|
centerBuilder: NavbarNavBuilder? = null,
|
||||||
rightBuilder: NavbarNavBuilder? = null,
|
rightBuilder: NavbarNavBuilder? = null,
|
||||||
vararg navModifiers: UIKitModifier,
|
vararg navModifiers: UIKitModifier,
|
||||||
@ -45,3 +48,29 @@ fun Navbar(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun Navbar(
|
||||||
|
leftBuilder: AttrsWithContentBuilder<HTMLDivElement>? = null,
|
||||||
|
centerBuilder: AttrsWithContentBuilder<HTMLDivElement>? = null,
|
||||||
|
rightBuilder: AttrsWithContentBuilder<HTMLDivElement>? = null,
|
||||||
|
vararg navModifiers: UIKitModifier,
|
||||||
|
attributesCustomizer: AttrBuilderContext<HTMLElement> = {},
|
||||||
|
) {
|
||||||
|
Navbar(
|
||||||
|
attributesCustomizer = {
|
||||||
|
include(*navModifiers)
|
||||||
|
attributesCustomizer()
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
leftBuilder ?.let {
|
||||||
|
Div({ include(UIKitNavbar.Alignment.Left);leftBuilder.attributesBuilderContext(this) }, leftBuilder.builder)
|
||||||
|
}
|
||||||
|
centerBuilder ?.let {
|
||||||
|
Div({ include(UIKitNavbar.Alignment.Center);centerBuilder.attributesBuilderContext(this) }, centerBuilder.builder)
|
||||||
|
}
|
||||||
|
rightBuilder ?.let {
|
||||||
|
Div({ include(UIKitNavbar.Alignment.Right);rightBuilder.attributesBuilderContext(this) }, rightBuilder.builder)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -2,11 +2,31 @@ package dev.inmo.jsuikit.elements
|
|||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import dev.inmo.jsuikit.modifiers.*
|
import dev.inmo.jsuikit.modifiers.*
|
||||||
|
import dev.inmo.jsuikit.utils.*
|
||||||
import org.jetbrains.compose.web.attributes.AttrsScope
|
import org.jetbrains.compose.web.attributes.AttrsScope
|
||||||
import org.jetbrains.compose.web.dom.*
|
import org.jetbrains.compose.web.dom.*
|
||||||
import org.w3c.dom.HTMLLIElement
|
import org.w3c.dom.HTMLLIElement
|
||||||
import org.w3c.dom.HTMLUListElement
|
import org.w3c.dom.HTMLUListElement
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun NavbarNav(
|
||||||
|
elements: List<AttrsWithContentBuilder<HTMLLIElement>>,
|
||||||
|
modifiers: List<UIKitModifier>,
|
||||||
|
attributesCustomizer: AttrBuilderContext<HTMLUListElement> = {}
|
||||||
|
) {
|
||||||
|
Ul(
|
||||||
|
{
|
||||||
|
include(UIKitNavbar.Nav, *modifiers.toTypedArray())
|
||||||
|
attributesCustomizer()
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
elements.forEach { element ->
|
||||||
|
Li(element.attributesBuilderContext, element.builder)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated("Will be removed soon. Use NavbarNavPart with AttrsWithContentBuilder instead")
|
||||||
interface NavbarNavElement {
|
interface NavbarNavElement {
|
||||||
fun AttrsScope<HTMLLIElement>.setup() {}
|
fun AttrsScope<HTMLLIElement>.setup() {}
|
||||||
@Composable
|
@Composable
|
||||||
@ -27,6 +47,7 @@ interface NavbarNavElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated("Will be removed soon. Use NavbarNavPart with AttrsWithContentBuilder instead")
|
||||||
class NavbarNavBuilder(
|
class NavbarNavBuilder(
|
||||||
private val modifiers: Array<UIKitModifier>,
|
private val modifiers: Array<UIKitModifier>,
|
||||||
private val elements: List<NavbarNavElement>,
|
private val elements: List<NavbarNavElement>,
|
||||||
|
Loading…
Reference in New Issue
Block a user