diff options
Diffstat (limited to 'lib/lsg_web/components/component.ex')
-rw-r--r-- | lib/lsg_web/components/component.ex | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/lsg_web/components/component.ex b/lib/lsg_web/components/component.ex new file mode 100644 index 0000000..37d75e3 --- /dev/null +++ b/lib/lsg_web/components/component.ex @@ -0,0 +1,40 @@ +defmodule LSGWeb.Component do + use Phoenix.Component + + @date_time_default_format "%F %H:%M" + @date_time_formats %{"time-24-with-seconds" => "%H:%M:%S"} + def naive_date_time_utc(assigns = %{format: format}) do + assigns = assign(assigns, :format, Map.get(@date_time_formats, format, format)) + ~H""" + <time class="component" + id={"time-#{:erlang.phash2(@datetime)}"} + phx-hook="NaiveDateTimeUTC" + data-time-format={get_luxon_format(@format)} + datetime={NaiveDateTime.to_iso8601(@datetime)}> + <%= Timex.format!(@datetime, @format, :strftime) %> + </time> + """ + end + def naive_date_time_utc(assigns) do + naive_date_time_utc(assign(assigns, :format, "%F %H:%M")) + end + def get_luxon_format("%H:%M:%S"), do: "TIME_24_WITH_SECONDS" + + def nick(assigns = %{self: false}) do + ~H""" + <span class="nickname" data-account-id={@account_id} data-user-id={@user_id}> + <%= @nick %> + </span> + """ + end + + def nick(assigns = %{self: true}) do + ~H""" + <span class="nickname self" data-account-id={@account_id} data-user-id={@user_id}> + You + </span> + """ + end + + +end |