defmodule MihainatorWeb.ResultComponent do @moduledoc false use Phoenix.LiveComponent @impl true def update(assigns, socket) do months = get_one_day_for_each_month(assigns.calendar_dates) socket = assign(socket, assigns: assigns, months: months) {:ok, socket} end def time_button(assigns) do {day, info} = assigns.day day = get_date(day) {out_messages, in_messages} = Enum.split_with(info, fn %{direction: direction} -> direction == "out" end) length_out = length(out_messages) length_in = length(in_messages) state = cond do length_in < length_out -> "bg-green-300 dark:text-slate-600" length_in > length_out -> "bg-red-300 dark:text-slate-600" true -> "" end assigns = assign(assigns, state: state, day: day.day) ~H""" """ end def month(assigns) do day = get_date(assigns.day) formatted_month = day |> Calendar.strftime("%B") assigns = assign(assigns, formatted_month: formatted_month, year: day.year) ~H"""