Dala.Spark.Pubsub (dala v0.0.10)

Copy Markdown View Source

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.Ui.Socket.assign(socket, :messages, messages)}
  end
end

Summary

Functions

get_subscriptions(dsl_state)

pubsub(body)

(macro)