defmodule SigmaKit.Components.DateSelectComponent do use Phoenix.LiveComponent use SigmaKit.Components def update(assigns, socket) do socket = assign(socket, id: assigns.id, date: assigns.date, view_date: assigns.date, target: assigns.target, open: false, day_count: Timex.diff( Timex.end_of_month(assigns.date), Timex.beginning_of_month(assigns.date), :days ), start_offset: Timex.weekday(Timex.beginning_of_month(assigns.date)) - 1 ) {:ok, socket} end def handle_event("view-date-change", %{"date" => date}, socket) do date = DateTime.from_iso8601(date) |> elem(1) socket = assign(socket, view_date: date) {:noreply, socket} end def handle_event("popover-hidden", _, socket) do {:noreply, assign(socket, open: false)} end def handle_event("popover-shown", _, socket) do {:noreply, assign(socket, open: true)} end def view_month(view_date) do Timex.beginning_of_month(view_date) end def render(assigns) do ~H"""