Component

abstract class Component<PROPS>(val ctx: Ctx<PROPS>)

Base class of all Components

Constructors

Link copied to clipboard
fun <PROPS> Component(ctx: Ctx<PROPS>)

Types

Link copied to clipboard
object Companion
Link copied to clipboard
class LifeCycle<PROPS>

Lifecycle hooks for components

Functions

Link copied to clipboard
fun <C : Component<*>> createRef(): ComponentRef.Tracker<C>
Link copied to clipboard
operator fun <T> Stream<T>.invoke(handler: (T) -> Unit): () -> Unit

Subscribes to a Stream.

Link copied to clipboard
abstract fun VDom.render()

Every component needs to implement this method

Link copied to clipboard
open fun shouldRedraw(nextProps: PROPS): Boolean

Returns 'true' when the component should redraw.

Link copied to clipboard
fun <T> stream(    initial: T,     config: Stream<T>.() -> Stream<T>? = null,     handler: (T) -> Unit = {}): ComponentStreamProperty<T>

Creates a property that is backed by a StreamSource

Link copied to clipboard
fun <T> subscribingTo(stream: Stream<T>, onNext: (T) -> Unit? = null): ReadOnlyProperty<Any?, T>

Creates a property that is subscribed to a stream.

Link copied to clipboard
fun triggerRedraw()

Triggers a redraw

Link copied to clipboard
fun <T> value(initial: T, onChange: (T) -> Unit? = null): ComponentStateProperty<T>

Creates a read write property for the components state.

Properties

Link copied to clipboard
val attributes: MutableTypedAttributes

The attributes of the component

Link copied to clipboard
val autoDomKey: String

An automatically generated unique dom key for the component instance.

Link copied to clipboard
val ctx: Ctx<PROPS>
Link copied to clipboard
val dom: HTMLElement?

The Dom node to which the component is rendered

Link copied to clipboard
val lifecycle: Component.LifeCycle<PROPS>

The life-cycle LifeCycle that the component exposes

Link copied to clipboard
val parent: Component<*>?

Accessor for the parent component

Link copied to clipboard
val props: PROPS

Public getter for the Props

Inheritors

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
fun <T, C> Component<C>.dataLoader(load: () -> Flow<T>): DataLoader<T>
Link copied to clipboard
fun Component<*>.formController(): FormController
Link copied to clipboard
val Component<*>.messages: MessagesHandler

Get the MessagesHandler for the Component

Link copied to clipboard
inline fun <M : Message<*>> Component<*>.onMessage(noinline handler: (M) -> Unit)

Listens for a Message of the given type M.

Link copied to clipboard
fun <C> Component<C>.pagedSearchFilter(router: Router, onChange: (PagedSearchFilter) -> Unit? = null): ReadWriteProperty<Component<C>, PagedSearchFilter>
Link copied to clipboard
fun <M : Message<*>> Component<*>.sendMessage(message: M)

Send the given message.

Link copied to clipboard
fun <C> Component<C>.urlParam(    router: Router,     name: String,     default: Int,     onChange: (Int) -> Unit? = null): ReadWriteProperty<Component<C>, Int>
fun <C> Component<C>.urlParam(    router: Router,     name: String,     default: String,     onChange: (String) -> Unit? = null): ReadWriteProperty<Component<C>, String>
Link copied to clipboard
fun <C, T> Component<C>.urlParams(    router: Router,     fromParams: (Map<String, String>) -> T,     toParams: (T) -> Map<String, Any?>,     onChange: (T) -> Unit? = null): ReadWriteProperty<Component<C>, T>