# `FrappeUIPhx.ToastSink`
[🔗](https://github.com/moacirbishopcamata/frappe_ui_phx/blob/v0.3.1/lib/frappe_ui_phx/toast_sink.ex#L1)

Contrato de como um toast chega ao cliente. A implementação padrão
(`FrappeUIPhx.ToastSink.PushEvent`) usa `push_event/3`; troque via config:

    config :frappe_ui_phx, toast_sink: MyApp.ToastSink

# `payload`

```elixir
@type payload() :: %{kind: String.t(), message: String.t(), timeout: pos_integer()}
```

Payload entregue ao cliente (`kind` já como texto).

# `deliver`

```elixir
@callback deliver(socket :: Phoenix.LiveView.Socket.t(), payload()) ::
  Phoenix.LiveView.Socket.t()
```

# `deliver`

```elixir
@spec deliver(Phoenix.LiveView.Socket.t(), payload()) :: Phoenix.LiveView.Socket.t()
```

Entrega o toast pela implementação configurada (validada).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
