-module(react_gleam@event). -compile([no_auto_import, nowarn_unused_vars]). -export([on/2, dispatch/1, on_click/1, on_mouse_down/1, on_mouse_up/1, on_mouse_enter/1, on_mouse_leave/1, on_mouse_over/1, on_mouse_out/1, on_keypress/1, on_keydown/1, on_keyup/1, on_input/1, on_check/1, on_submit/1, on_focus/1, on_blur/1]). -spec on(binary(), fun((gleam@dynamic:dynamic(), fun((HCC) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCC). on(Name, Handler) -> react_gleam@attribute:event(Name, Handler). -spec dispatch(HCG) -> fun((fun((HCG) -> nil)) -> nil). dispatch(Action) -> fun(Dispatch) -> Dispatch(Action) end. -spec on_click(fun((fun((HCH) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCH). on_click(Handler) -> on(<<"click"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_down(fun((fun((HCL) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCL). on_mouse_down(Handler) -> on(<<"mouseDown"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_up(fun((fun((HCP) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCP). on_mouse_up(Handler) -> on(<<"mouseUp"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_enter(fun((fun((HCT) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCT). on_mouse_enter(Handler) -> on(<<"mouseEnter"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_leave(fun((fun((HCX) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HCX). on_mouse_leave(Handler) -> on(<<"mouseLeave"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_over(fun((fun((HDB) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDB). on_mouse_over(Handler) -> on(<<"mouseOver"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_mouse_out(fun((fun((HDF) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDF). on_mouse_out(Handler) -> on(<<"mouseOut"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_keypress(fun((binary(), fun((HDJ) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDJ). on_keypress(Handler) -> on( <<"keyPress"/utf8>>, fun(E, Dispatch) -> _assert_subject = begin _pipe = E, (gleam@dynamic:field(<<"key"/utf8>>, fun gleam@dynamic:string/1))( _pipe ) end, {ok, Key} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"react_gleam/event"/utf8>>, function => <<"on_keypress"/utf8>>, line => 82}) end, Handler(Key, Dispatch) end ). -spec on_keydown(fun((binary(), fun((HDN) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDN). on_keydown(Handler) -> on( <<"keyDown"/utf8>>, fun(E, Dispatch) -> _assert_subject = begin _pipe = E, (gleam@dynamic:field(<<"key"/utf8>>, fun gleam@dynamic:string/1))( _pipe ) end, {ok, Key} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"react_gleam/event"/utf8>>, function => <<"on_keydown"/utf8>>, line => 97}) end, Handler(Key, Dispatch) end ). -spec on_keyup(fun((binary(), fun((HDR) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDR). on_keyup(Handler) -> on( <<"keyUp"/utf8>>, fun(E, Dispatch) -> _assert_subject = begin _pipe = E, (gleam@dynamic:field(<<"key"/utf8>>, fun gleam@dynamic:string/1))( _pipe ) end, {ok, Key} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"react_gleam/event"/utf8>>, function => <<"on_keyup"/utf8>>, line => 112}) end, Handler(Key, Dispatch) end ). -spec on_input(fun((binary(), fun((HDV) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDV). on_input(Handler) -> on( <<"input"/utf8>>, fun(E, Dispatch) -> _assert_subject = begin _pipe = E, (gleam@dynamic:field( <<"target"/utf8>>, gleam@dynamic:field( <<"value"/utf8>>, fun gleam@dynamic:string/1 ) ))(_pipe) end, {ok, Value} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"react_gleam/event"/utf8>>, function => <<"on_input"/utf8>>, line => 130}) end, Handler(Value, Dispatch) end ). -spec on_check(fun((boolean(), fun((HDZ) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HDZ). on_check(Handler) -> on( <<"check"/utf8>>, fun(E, Dispatch) -> _assert_subject = begin _pipe = E, (gleam@dynamic:field( <<"target"/utf8>>, gleam@dynamic:field( <<"checked"/utf8>>, fun gleam@dynamic:bool/1 ) ))(_pipe) end, {ok, Value} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"react_gleam/event"/utf8>>, function => <<"on_check"/utf8>>, line => 145}) end, Handler(Value, Dispatch) end ). -spec on_submit(fun((fun((HED) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HED). on_submit(Handler) -> on(<<"submit"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_focus(fun((fun((HEH) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HEH). on_focus(Handler) -> on(<<"focus"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end). -spec on_blur(fun((fun((HEL) -> nil)) -> nil)) -> react_gleam@attribute:attribute(any(), HEL). on_blur(Handler) -> on(<<"blur"/utf8>>, fun(_, Dispatch) -> Handler(Dispatch) end).