diff --git a/uncharted_phoenix/lib/uncharted_phoenix/components/live_bar.ex b/uncharted_phoenix/lib/uncharted_phoenix/components/live_bar.ex index 1afe98b..c864275 100644 --- a/uncharted_phoenix/lib/uncharted_phoenix/components/live_bar.ex +++ b/uncharted_phoenix/lib/uncharted_phoenix/components/live_bar.ex @@ -4,10 +4,7 @@ defmodule UnchartedPhoenix.LiveBarComponent do """ use Phoenix.LiveComponent - - def mount(socket) do - {:ok, assign(socket, :show_table, false)} - end + use UnchartedPhoenix.TableEvents def update(assigns, socket) do x_axis = assigns.chart.dataset.axes.magnitude_axis @@ -36,12 +33,4 @@ defmodule UnchartedPhoenix.LiveBarComponent do def render(assigns) do Phoenix.View.render(UnchartedPhoenix.ComponentView, "live_bar.html", assigns) end - - def handle_event("show_table", _, socket) do - {:noreply, assign(socket, :show_table, true)} - end - - def handle_event("hide_table", _, socket) do - {:noreply, assign(socket, :show_table, false)} - end end diff --git a/uncharted_phoenix/lib/uncharted_phoenix/components/live_column.ex b/uncharted_phoenix/lib/uncharted_phoenix/components/live_column.ex index ad4a28b..2cfae72 100644 --- a/uncharted_phoenix/lib/uncharted_phoenix/components/live_column.ex +++ b/uncharted_phoenix/lib/uncharted_phoenix/components/live_column.ex @@ -4,10 +4,7 @@ defmodule UnchartedPhoenix.LiveColumnComponent do """ use Phoenix.LiveComponent - - def mount(socket) do - {:ok, assign(socket, :show_table, false)} - end + use UnchartedPhoenix.TableEvents def update(assigns, socket) do y_axis = assigns.chart.dataset.axes.magnitude_axis @@ -32,12 +29,4 @@ defmodule UnchartedPhoenix.LiveColumnComponent do def render(assigns) do Phoenix.View.render(UnchartedPhoenix.ComponentView, "live_column.html", assigns) end - - def handle_event("show_table", _, socket) do - {:noreply, assign(socket, :show_table, true)} - end - - def handle_event("hide_table", _, socket) do - {:noreply, assign(socket, :show_table, false)} - end end diff --git a/uncharted_phoenix/lib/uncharted_phoenix/components/live_line.ex b/uncharted_phoenix/lib/uncharted_phoenix/components/live_line.ex index c527304..bd5b712 100644 --- a/uncharted_phoenix/lib/uncharted_phoenix/components/live_line.ex +++ b/uncharted_phoenix/lib/uncharted_phoenix/components/live_line.ex @@ -4,10 +4,7 @@ defmodule UnchartedPhoenix.LiveLineComponent do """ use Phoenix.LiveComponent - - def mount(socket) do - {:ok, assign(socket, :show_table, false)} - end + use UnchartedPhoenix.TableEvents def update(assigns, socket) do x_axis = assigns.chart.dataset.axes.x @@ -41,12 +38,4 @@ defmodule UnchartedPhoenix.LiveLineComponent do def render(assigns) do Phoenix.View.render(UnchartedPhoenix.ComponentView, "live_line.html", assigns) end - - def handle_event("show_table", _, socket) do - {:noreply, assign(socket, :show_table, true)} - end - - def handle_event("hide_table", _, socket) do - {:noreply, assign(socket, :show_table, false)} - end end diff --git a/uncharted_phoenix/lib/uncharted_phoenix/components/live_pie.ex b/uncharted_phoenix/lib/uncharted_phoenix/components/live_pie.ex index b1b0754..79758b5 100644 --- a/uncharted_phoenix/lib/uncharted_phoenix/components/live_pie.ex +++ b/uncharted_phoenix/lib/uncharted_phoenix/components/live_pie.ex @@ -4,10 +4,7 @@ defmodule UnchartedPhoenix.LivePieComponent do """ use Phoenix.LiveComponent - - def mount(socket) do - {:ok, assign(socket, :show_table, false)} - end + use UnchartedPhoenix.TableEvents def update(assigns, socket) do socket = @@ -22,12 +19,4 @@ defmodule UnchartedPhoenix.LivePieComponent do def render(assigns) do Phoenix.View.render(UnchartedPhoenix.ComponentView, "live_pie.html", assigns) end - - def handle_event("show_table", _, socket) do - {:noreply, assign(socket, :show_table, true)} - end - - def handle_event("hide_table", _, socket) do - {:noreply, assign(socket, :show_table, false)} - end end diff --git a/uncharted_phoenix/lib/uncharted_phoenix/components/live_progress.ex b/uncharted_phoenix/lib/uncharted_phoenix/components/live_progress.ex index 628d890..1c7f386 100644 --- a/uncharted_phoenix/lib/uncharted_phoenix/components/live_progress.ex +++ b/uncharted_phoenix/lib/uncharted_phoenix/components/live_progress.ex @@ -5,10 +5,7 @@ defmodule UnchartedPhoenix.LiveProgressComponent do alias Uncharted.ProgressChart use Phoenix.LiveComponent - - def mount(socket) do - {:ok, assign(socket, :show_table, false)} - end + use UnchartedPhoenix.TableEvents def update(assigns, socket) do socket = @@ -24,12 +21,4 @@ defmodule UnchartedPhoenix.LiveProgressComponent do def render(assigns) do Phoenix.View.render(UnchartedPhoenix.ComponentView, "live_progress.html", assigns) end - - def handle_event("show_table", _, socket) do - {:noreply, assign(socket, :show_table, true)} - end - - def handle_event("hide_table", _, socket) do - {:noreply, assign(socket, :show_table, false)} - end end diff --git a/uncharted_phoenix/lib/uncharted_phoenix/table_events.ex b/uncharted_phoenix/lib/uncharted_phoenix/table_events.ex new file mode 100644 index 0000000..be22282 --- /dev/null +++ b/uncharted_phoenix/lib/uncharted_phoenix/table_events.ex @@ -0,0 +1,17 @@ +defmodule UnchartedPhoenix.TableEvents do + defmacro __using__(_) do + quote do + def mount(socket) do + {:ok, assign(socket, :show_table, false)} + end + + def handle_event("show_table", _, socket) do + {:noreply, assign(socket, :show_table, true)} + end + + def handle_event("hide_table", _, socket) do + {:noreply, assign(socket, :show_table, false)} + end + end + end +end