Spark DSL extension for declarative PubSub subscriptions in Dala screens.
Allows screens to declare topic subscriptions directly in the DSL, with automatic subscribe/unsubscribe lifecycle management.
Usage
defmodule MyApp.ChatScreen do
use Dala.Spark.Dsl
dala do
attribute :messages, :list, default: []
pubsub do
subscribe "chat:room:123", on_message: :handle_chat
end
screen name: :chat do
column do
text "Messages: @messages"
end
end
end
def handle_chat({:message, text}, socket) do
messages = socket.assigns.messages ++ [text]
{:noreply, Dala.Socket.assign(socket, :messages, messages)}
end
end