Current section

Files

Jump to
phoenix_analytics lib phoenix_analytics web live dashboard_live.ex
Raw

lib/phoenix_analytics/web/live/dashboard_live.ex

defmodule PhoenixAnalytics.Web.Live.Dashboard do
@moduledoc false
use PhoenixAnalytics.Web, :live_view
@impl true
def mount(_params, _session, socket) do
today = Date.utc_today()
three_months_ago = today |> Date.add(-3 * 30) |> Date.beginning_of_month()
default_to = today |> Date.to_string() |> Kernel.<>(" 23:59:59")
default_from = three_months_ago |> Date.to_string() |> Kernel.<>(" 00:00:00")
range = %{from: default_from, to: default_to}
default_interval = "day"
{:ok, socket |> assign(:date_range, range) |> assign(:interval, default_interval)}
end
@impl true
def handle_event("set_date", %{"value" => %{"from" => from, "to" => to}}, socket) do
{:noreply, assign(socket, :date_range, %{from: from, to: to})}
end
@impl true
def handle_event("set_interval", %{"value" => %{"interval" => interval}}, socket) do
{:noreply, assign(socket, :interval, interval)}
end
end