off_topic/component

A drop-in replacement for lustre/component that adds a mappable Option type. Switch your import from lustre/component to off_topic/component and all existing calls continue to work unchanged.

The key addition is map and to_lustre_options, which let you adapt Option(inner_message) to Option(outer_message) when wrapping a component.

Types

Re-export of lustre/component.Config — the configuration record produced by lustre.component.

pub type Config(message) =
  component.Config(message)

A mappable alternative to lustre/component.Option. Each constructor corresponds to one of the option builder functions in lustre/component.

Use to_lustre_options to convert back to lustre’s type when calling lustre.component.

pub opaque type Option(message)

Values

pub fn adopt_styles(adopt: Bool) -> Option(message)
pub fn clear_form_value() -> effect.Effect(message)
pub fn default_slot(
  attributes: List(attribute.Attribute(message)),
  fallback: List(element.Element(message)),
) -> element.Element(message)
pub fn delegates_focus(delegates: Bool) -> Option(message)
pub fn exportparts(
  names: List(String),
) -> attribute.Attribute(message)
pub fn form_associated() -> Option(message)
pub fn map(option: Option(a), f: fn(a) -> b) -> Option(b)

Transform the message type of an Option.

pub fn named_slot(
  name: String,
  attributes: List(attribute.Attribute(message)),
  fallback: List(element.Element(message)),
) -> element.Element(message)
pub fn on_adopt(message: message) -> Option(message)
pub fn on_attribute_change(
  name: String,
  decoder: fn(String) -> Result(message, Nil),
) -> Option(message)
pub fn on_connect(message: message) -> Option(message)
pub fn on_context_change(
  key: String,
  decoder: decode.Decoder(message),
) -> Option(message)
pub fn on_disconnect(message: message) -> Option(message)
pub fn on_form_autofill(
  handler: fn(String) -> message,
) -> Option(message)
pub fn on_form_reset(message: message) -> Option(message)
pub fn on_form_restore(
  handler: fn(String) -> message,
) -> Option(message)
pub fn on_property_change(
  name: String,
  decoder: decode.Decoder(message),
) -> Option(message)
pub fn open_shadow_root(open: Bool) -> Option(message)
pub fn part(name: String) -> attribute.Attribute(message)
pub fn parts(
  names: List(#(String, Bool)),
) -> attribute.Attribute(message)
pub fn prerender(
  component: lustre.App(Nil, model, message),
  tag: String,
  attributes: List(attribute.Attribute(message)),
  children: List(element.Element(message)),
) -> element.Element(message)
pub fn remove_pseudo_state(
  value: String,
) -> effect.Effect(message)
pub fn set_form_value(value: String) -> effect.Effect(message)
pub fn set_pseudo_state(value: String) -> effect.Effect(message)
pub fn slot(name: String) -> attribute.Attribute(message)
pub fn to_lustre_options(
  options: List(Option(message)),
) -> List(component.Option(message))

Convert a list of off_topic/component.Option values to lustre/component.Option values, ready to pass to lustre.component.

Search Document