README

Tests Hex.pm Documentation

LiveMessage

Unified messaging for LiveViews and LiveComponents, to allow for simple decomposition of LiveViews into LiveComponents.

Usage

From any LiveView or LiveComponent you can:

send_info(target, message)

or

send_info_after(target, message, time)

which will trigger a handle_info/2 in the target LIveView or LiveComponent:

def handle_info(message, socket) do
  ....
  {:noreply, socket}
end

The "target" here is the ID of the LiveView or LiveComponent available though the @me assign, e.g.

<.live_component module={MyComponent} id="my_component"
  target={@me}
/>

Think of @me like @myself but for live messaging.

Installation

The package can be installed by adding live_message to your list of dependencies in mix.exs:

def deps do
  [
    {:live_message, "~> 0.1.0"}
  ]
end

Next, add the following use statements to your web file in lib/my_app_web.ex:

# lib/my_app_web.ex

def live_view do
  quote do
    # ...
    use LiveMessage.LiveView
  end
end

def live_component do
  quote do
    # ...
    use LiveMessage.LiveComponent
  end
end