32 lines
1.1 KiB
Kotlin
32 lines
1.1 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
|
|
|
|
val loadingClientModule = ModuleLoader {
|
|
singleWithRandomQualifier<ContentClientProvider> {
|
|
TextContentClientProvider
|
|
}
|
|
}.also {
|
|
AdditionalModules.addModule(it)
|
|
}
|
|
|
|
object TextContentClientProvider : ContentClientProvider {
|
|
override fun contentTypeNameForUser(): String = "Text"
|
|
|
|
override fun createNewContentRenderer(): ContentClientProvider.ContentRenderer {
|
|
return ContentClientProvider.ContentRenderer.default<TextContent> @Composable { state ->
|
|
TextArea(state.value ?. text ?: "") {
|
|
include(UIKitWidth.Expand)
|
|
onInput { state.value = TextContent(it.value) }
|
|
}
|
|
}
|
|
}
|
|
}
|