12345678910111213141516171819202122232425262728293031 |
- -module(action_manage).
- %%-author('Andrey Martemyanov').
- -include_lib("nitro/include/nitro.hrl").
- -export([
- render_action/1
- ]).
- render_action( #replace{target = T, elements = E} ) ->
- nitro:render( #jq{target = T, property = outerHTML, right = E} );
- render_action( #insert{target = T, elements = E, position = P} ) ->
- {Rendered, Actions} = render_element(E),
- [ wf_event:target(T), ".insertAdjacentHTML('", nitro:to_binary(P), "','", Rendered, "');", nitro:render(Actions) ];
- render_action(#multi{actions = A}) ->
- [ "window.requestAnimationFrame(function(timestamp){", nitro:render(A), "});" ].
- render_element(E) ->
- Pid = self(),
- Ref = make_ref(),
- spawn(fun() ->
- Pid ! { nitro:render(E), Ref, wf:actions() }
- end),
- receive
- {Rendered, Ref, Actions} -> {Rendered, Actions}
- end.
|