Packages

Command+K implementation for Phoenix LiveView

Current section

Files

Jump to
command_k lib command_k.ex
Raw

lib/command_k.ex

defmodule CommandK do
@moduledoc """
Documentation for `CommandK`.
"""
defmacro __using__(opts) do
handler = Keyword.fetch!(opts, :handler)
component = Keyword.fetch!(opts, :component)
quote do
on_mount({unquote(__MODULE__.LiveView), {:default, unquote(handler), unquote(component)}})
end
end
## Delegates
alias Phoenix.LiveView.JS
defdelegate put_context(socket, context), to: __MODULE__.LiveView
defdelegate open(js \\ %JS{}), to: __MODULE__.LiveView
defdelegate close(js \\ %JS{}), to: __MODULE__.LiveView
defdelegate toggle(js \\ %JS{}), to: __MODULE__.LiveView
defdelegate exec(js \\ %JS{}, id), to: __MODULE__.LiveView
defdelegate command_k(js \\ %JS{}), to: __MODULE__.LiveView
defdelegate send_open(), to: __MODULE__.LiveView
defdelegate send_close(), to: __MODULE__.LiveView
defdelegate send_toggle(), to: __MODULE__.LiveView
defdelegate send_exec(id, context), to: __MODULE__.LiveView
end