+ """
+ end
+
+
+ def render_field(record, field, _session) do
+ IO.inspect(field)
+ record
+ |> Map.fetch!(field)
+ |> case do
+ bool when is_boolean(bool) ->
+ if bool, do: "Yes", else: "No"
+ date = %Date{} ->
+ Calendar.strftime(date, "%a, %B %d %Y")
+ bin when is_binary(bin) -> bin
+ _ ->
+ record
+ |> Map.fetch!(field)
+ |> case do
+ val when is_binary(val) -> val
+ val -> inspect(val, pretty: true)
+ end
+ end
+ end
+
+end
diff --git a/lib/vyasa_web/components/audio_player.ex b/lib/vyasa_web/components/audio_player.ex
new file mode 100644
index 00000000..69e053cd
--- /dev/null
+++ b/lib/vyasa_web/components/audio_player.ex
@@ -0,0 +1,38 @@
+defmodule VyasaWeb.AudioPlayer do
+ use VyasaWeb, :live_component
+
+ def mount(_, _, socket) do
+ socket
+ |> assign(player_details: nil)
+ end
+
+ @impl true
+ def render(assigns) do
+ ~H"""
+
+
+
+ """
+ end
+
+ @impl true
+ def update(%{
+ event: "media_bridge:update_audio_player" = event,
+ player_details: player_details,
+ elapsed: elapsed,
+ } = _assigns, socket) do
+ IO.inspect("handle update case in audio_player.ex with event = #{event}", label: "checkpoint")
+
+ {
+ :ok, socket
+ |> assign(player_details: player_details)
+ |> assign(elapsed: elapsed) # TODO: refactor candidate for removal
+ }
+ end
+
+ @impl true
+ def update(assigns, socket) do
+ IO.inspect(assigns, label: "what")
+ {:ok, socket |> assign(player_details: nil)}
+ end
+ end
diff --git a/lib/vyasa_web/components/layouts.ex b/lib/vyasa_web/components/layouts.ex
index 9611c444..1dce99eb 100644
--- a/lib/vyasa_web/components/layouts.ex
+++ b/lib/vyasa_web/components/layouts.ex
@@ -2,4 +2,35 @@ defmodule VyasaWeb.Layouts do
use VyasaWeb, :html
embed_templates "layouts/*"
+
+ attr(:contents, :map, required: true)
+
+ @doc """
+ Function component into which meta tags can be inserted.
+ """
+ def meta_tags(assigns) do
+ ~H"""
+
+ """
+ end
+
+ defp parse_contents(contents) when is_map(contents) do
+ IO.puts("Contents map for meta contents:")
+ IO.inspect(contents)
+
+
+ contents
+ |> Enum.map(&define_name/1)
+ |> List.flatten()
+ |> Enum.into(%{})
+ end
+
+ defp parse_contents(_contents), do: %{}
+
+ defp define_name({k, v}) when is_map(v) do
+ Enum.map(v, &define_name(&1, k))
+ end
+
+ defp define_name(data), do: define_name(data, "og")
+ defp define_name({k, v}, prefix), do: {"#{prefix}:#{k}", v}
end
diff --git a/lib/vyasa_web/components/layouts/app.html.heex b/lib/vyasa_web/components/layouts/app.html.heex
index 038bc210..a72d90c8 100644
--- a/lib/vyasa_web/components/layouts/app.html.heex
+++ b/lib/vyasa_web/components/layouts/app.html.heex
@@ -1,4 +1,4 @@
-
+