mirror of
https://github.com/InsanusMokrassar/JSUIKitKBindings.git
synced 2024-12-22 00:27:25 +00:00
commit
730da9f759
@ -1,5 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 0.6.1
|
||||
|
||||
* `DefaultInput` has been renamed to `StandardInput`
|
||||
* `Compose`: `1.3.1-rc02`
|
||||
|
||||
## 0.6.0
|
||||
|
||||
* `Kotlin`: `1.8.10`
|
||||
|
@ -3,10 +3,8 @@ org.gradle.parallel=true
|
||||
kotlin.js.generate.externals=true
|
||||
kotlin.incremental=true
|
||||
kotlin.incremental.js=true
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
# Project data
|
||||
|
||||
group=dev.inmo
|
||||
version=0.6.0
|
||||
version=0.6.1
|
||||
|
@ -1,8 +1,8 @@
|
||||
[versions]
|
||||
|
||||
kt = "1.8.10"
|
||||
jb-compose = "1.3.1-rc01"
|
||||
jb-dokka = "1.7.20"
|
||||
jb-compose = "1.3.1-rc02"
|
||||
jb-dokka = "1.8.10"
|
||||
gh-release = "2.4.1"
|
||||
|
||||
[libraries]
|
||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
@ -8,6 +8,40 @@ import org.jetbrains.compose.web.dom.AttrBuilderContext
|
||||
import org.jetbrains.compose.web.dom.Input
|
||||
import org.w3c.dom.HTMLInputElement
|
||||
|
||||
@Composable
|
||||
fun <T> StandardInput(
|
||||
type: InputType<T>,
|
||||
value: T? = null,
|
||||
vararg modifiers: UIKitModifier,
|
||||
disabled: Boolean = false,
|
||||
placeholder: String? = null,
|
||||
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||
onChange: HTMLInputElement.(T) -> Unit
|
||||
) {
|
||||
Input(type) {
|
||||
classes("uk-input")
|
||||
include(*modifiers)
|
||||
|
||||
placeholder ?.let(::placeholder)
|
||||
|
||||
value ?.let {
|
||||
when (it) {
|
||||
is String -> value(it)
|
||||
is Number -> value(it)
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
onInput { event -> event.target.onChange(event.value) }
|
||||
|
||||
if (disabled) {
|
||||
disabled()
|
||||
}
|
||||
attributesCustomizer()
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Renamed", ReplaceWith("StandardInput(type, value, *modifiers, disabled, placeholder, attributesCustomizer, onChange)"))
|
||||
@Composable
|
||||
fun <T> DefaultInput(
|
||||
type: InputType<T>,
|
||||
@ -17,28 +51,8 @@ fun <T> DefaultInput(
|
||||
vararg modifiers: UIKitModifier,
|
||||
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||
onChange: (T) -> Unit
|
||||
) {
|
||||
Input(type) {
|
||||
classes("uk-input")
|
||||
include(*modifiers)
|
||||
|
||||
placeholder ?.let(::placeholder)
|
||||
|
||||
value.let {
|
||||
when (it) {
|
||||
is String -> value(it)
|
||||
is Number -> value(it)
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
onInput { onChange(it.value) }
|
||||
|
||||
if (disabled) {
|
||||
disabled()
|
||||
}
|
||||
attributesCustomizer()
|
||||
}
|
||||
) = StandardInput(type, value, modifiers = modifiers, disabled, placeholder, attributesCustomizer) {
|
||||
onChange(it)
|
||||
}
|
||||
|
||||
@Composable
|
||||
@ -49,12 +63,12 @@ fun <T> StandardInput(
|
||||
placeholder: String? = null,
|
||||
vararg modifiers: UIKitModifier,
|
||||
attributesCustomizer: AttrBuilderContext<HTMLInputElement> = {},
|
||||
) = DefaultInput(
|
||||
) = StandardInput(
|
||||
type,
|
||||
state.value,
|
||||
modifiers = modifiers,
|
||||
disabledState ?.value == true,
|
||||
placeholder,
|
||||
modifiers = modifiers,
|
||||
attributesCustomizer = attributesCustomizer
|
||||
) {
|
||||
state.value = it
|
||||
|
Loading…
Reference in New Issue
Block a user