Current section

Files

Jump to
sprocket src sprocket@component.erl
Raw

src/sprocket@component.erl

-module(sprocket@component).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([component/2, provider/3, render/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/sprocket/component.gleam", 19).
?DOC(" Creates a new stateful component element from a given component function and props.\n").
-spec component(
fun((sprocket@internal@context:context(), LYW) -> {sprocket@internal@context:context(),
sprocket@internal@context:element()}),
LYW
) -> sprocket@internal@context:element().
component(C, Props) ->
Component = begin
_pipe = C,
_pipe@1 = gleam_stdlib:identity(_pipe),
sprocket@internal@utils@unsafe_coerce:unsafe_coerce(_pipe@1)
end,
Props@1 = begin
_pipe@2 = Props,
gleam_stdlib:identity(_pipe@2)
end,
{component, Component, Props@1}.
-file("src/sprocket/component.gleam", 33).
?DOC(" Creates a new provider element with the given key and value.\n").
-spec provider(binary(), any(), sprocket@internal@context:element()) -> sprocket@internal@context:element().
provider(Key, Value, Element) ->
{provider, Key, gleam_stdlib:identity(Value), Element}.
-file("src/sprocket/component.gleam", 38).
?DOC(" Renders an element with the given context.\n").
-spec render(
sprocket@internal@context:context(),
sprocket@internal@context:element()
) -> {sprocket@internal@context:context(), sprocket@internal@context:element()}.
render(Ctx, Element) ->
{Ctx, Element}.