diff --git a/lib/freedive_web/live/liliform_live.ex b/lib/freedive_web/live/liliform_live.ex index ec45b45..98392f6 100644 --- a/lib/freedive_web/live/liliform_live.ex +++ b/lib/freedive_web/live/liliform_live.ex @@ -42,8 +42,22 @@ defmodule FreediveWeb.LiliformLive do FreediveWeb.LiliformLive.get_active_filter(socket.assigns.filters) ) - items = search(filtered_items, query) - socket = assign(socket, :items, items) + searched_items = search(filtered_items, query) + socket = assign(socket, :items, searched_items) + + socket = + case Kernel.length(Map.keys(searched_items)) == 1 do + true -> + IO.inspect(Map.keys(searched_items) |> List.first()) + assign(socket, %{ + selected_item: Map.get(searched_items, Map.keys(searched_items) |> List.first()), + details: true + }) + + false -> + assign(socket, %{selected_item: nil, details: nil}) + end + {:noreply, socket} end diff --git a/lib/freedive_web/live/service_live.ex b/lib/freedive_web/live/service_live.ex index 730b8d8..db9b046 100644 --- a/lib/freedive_web/live/service_live.ex +++ b/lib/freedive_web/live/service_live.ex @@ -3,7 +3,7 @@ defmodule FreediveWeb.ServiceLive do def render(assigns) do ~H""" - <.page name="Services" filters={@filters}> + <.page name="Services" filters={@filters} details={@details}> + <.panel class={@class} {@rest} is-info> + <.panel_heading> + <%= @name %> + - <.panel class={@class} {@rest} is-info> - <.panel_heading> - <%= @name %> - + <%= if @details == nil do %> + <.panel_tabs is-hidden-mobile> + <%= for filter <- @filters do %> + + <%= filter.title %> + + <% end %> + - <.panel_tabs is-hidden-mobile> - <%= for filter <- @filters do %> - - <%= filter.title %> - + <.panel_tabs is-hidden-tablet> + <%= for filter <- @filters do %> + + <.icon for={filter.icon} color="auto" /> + + <% end %> + <% end %> - - - <.panel_tabs is-hidden-tablet> - <%= for filter <- @filters do %> - - <.icon for={filter.icon} color="auto" /> - - <% end %> - - - <.panel_block> - <.control has-icons-left> - - <.icon for="search" size="1.5rem" aria-hidden="true" is-left /> - - - <%= render_slot(@inner_block) %> - + <.panel_block> + <.control has-icons-left> + + <.icon for="search" size="1.5rem" aria-hidden="true" is-left /> + + + <%= render_slot(@inner_block) %> + """ end