add datetime helper
This commit is contained in:
		| @@ -91,13 +91,11 @@ defmodule LokalWeb do | ||||
|  | ||||
|       # Import LiveView and .heex helpers (live_render, live_patch, <.form>, etc) | ||||
|       import Phoenix.LiveView.Helpers | ||||
|       import LokalWeb.LiveHelpers | ||||
|  | ||||
|       # Import basic rendering functionality (render, render_layout, etc) | ||||
|       import Phoenix.View | ||||
|  | ||||
|       import LokalWeb.ErrorHelpers | ||||
|       import LokalWeb.Gettext | ||||
|       import LokalWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers} | ||||
|       alias LokalWeb.Router.Helpers, as: Routes | ||||
|     end | ||||
|   end | ||||
|   | ||||
							
								
								
									
										33
									
								
								lib/lokal_web/views/view_helpers.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								lib/lokal_web/views/view_helpers.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| defmodule LokalWeb.ViewHelpers do | ||||
|   @moduledoc """ | ||||
|   Contains common helpers that can be used in liveviews and regular views. These | ||||
|   are automatically imported into any Phoenix View using `use LokalWeb, :view` | ||||
|   """ | ||||
|  | ||||
|   import Phoenix.LiveView.Helpers | ||||
|  | ||||
|   @doc """ | ||||
|   Returns a <time> element that renders the naivedatetime in the user's local | ||||
|   timezone with Alpine.js | ||||
|   """ | ||||
|   @spec display_datetime(NaiveDateTime.t()) :: Phoenix.LiveView.Rendered.t() | ||||
|   def display_datetime(datetime) do | ||||
|     assigns = %{ | ||||
|       datetime: datetime |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_iso8601(:extended) | ||||
|     } | ||||
|  | ||||
|     ~H""" | ||||
|     <time | ||||
|       datetime={@datetime} | ||||
|       x-data={"{ | ||||
|         date: | ||||
|           Intl.DateTimeFormat([], {dateStyle: 'short', timeStyle: 'long'}) | ||||
|             .format(new Date(\"#{@datetime}\")) | ||||
|       }"} | ||||
|       x-text="date" | ||||
|     > | ||||
|       <%= @datetime %> | ||||
|     </time> | ||||
|     """ | ||||
|   end | ||||
| end | ||||
		Reference in New Issue
	
	Block a user