defmodule SpazioSolazzoWeb.CarouselLiveComponent do @moduledoc """ A LiveComponent for image carousels with navigation controls. """ use Phoenix.LiveComponent import SpazioSolazzoWeb.CoreComponents, only: [icon: 1] @impl true def update(assigns, socket) do {:ok, socket |> assign(assigns) |> assign_new(:carousel_index, fn -> 0 end)} end @impl true def handle_event("carousel_next", _params, socket) do images_count = length(socket.assigns.images) new_index = rem(socket.assigns.carousel_index + 1, images_count) {:noreply, assign(socket, carousel_index: new_index)} end @impl true def handle_event("carousel_prev", _params, socket) do images_count = length(socket.assigns.images) new_index = rem(socket.assigns.carousel_index - 1 + images_count, images_count) {:noreply, assign(socket, carousel_index: new_index)} end @impl true def render(assigns) do ~H"""
<%= if length(@images) > 1 do %> <% end %>
""" end end