40 lines
1.2 KiB
Kotlin
40 lines
1.2 KiB
Kotlin
package dev.inmo.postssystem.features.content.text.client
|
|
|
|
import androidx.compose.runtime.*
|
|
import dev.inmo.jsuikit.modifiers.UIKitWidth
|
|
import dev.inmo.jsuikit.modifiers.include
|
|
import dev.inmo.postssystem.features.common.common.*
|
|
import dev.inmo.postssystem.features.content.client.ContentClientProvider
|
|
import dev.inmo.postssystem.features.content.common.Content
|
|
import dev.inmo.postssystem.features.content.text.common.TextContent
|
|
import org.jetbrains.compose.web.dom.TextArea
|
|
import org.koin.core.module.Module
|
|
|
|
object LoadingClientModule : ModuleLoader {
|
|
init {
|
|
AdditionalModules.addModule(this)
|
|
}
|
|
|
|
override fun Module.load() {
|
|
singleWithRandomQualifier<ContentClientProvider> {
|
|
TextContentClientProvider
|
|
}
|
|
}
|
|
}
|
|
|
|
private val loadingClientModuleForLoadingAtRuntime = LoadingClientModule
|
|
|
|
object TextContentClientProvider : ContentClientProvider {
|
|
override fun contentTypeNameForUser(): String = "Text"
|
|
|
|
@Composable
|
|
override fun renderNewInstance(state: MutableState<Content?>) {
|
|
console.log(state.value)
|
|
val value = state.value as? TextContent
|
|
TextArea(value ?.text) {
|
|
include(UIKitWidth.Expand)
|
|
onInput { state.value = TextContent(it.value) }
|
|
}
|
|
}
|
|
}
|