lib/helix/modules/sample_and_hold_module.ex
defmodule Helix.Modules.SampleAndHoldModule do
use Helix.Modules.Module
import Helix.Modules.GPTUtils
def handle_cast({:convey, event}, state) do
ui_event(state)
state = update_input_history(state, event)
triggers = String.split(Map.get(state, :Trigger, ""), ",")
source = String.replace(event.source_id, "_" <> state.graph_id, "")
if Enum.member?(triggers, source) do
{:noreply, convey(Map.get(state, :hold, ""), state)}
else
{:noreply, Map.put(state, :hold, event.value)}
end
end
end