defmodule HomeDashWeb.Cards.Default do # credo:disable-for-this-file Credo.Check.Refactor.Apply use HomeDashWeb, :html attr :card, HomeDash.Card, required: true attr :title, :string, required: false attr :class, :string, required: false slot :inner_block, required: false def render(assigns) do assigns = assigns |> assign_new(:title, fn -> Map.get(assigns.card.data, :title, "Default Title") end) |> assign(:message, Map.get(assigns.card.data, :message, "This is a default welcome card")) |> assign(:tags, Map.get(assigns.card.data, :tags, [])) |> assign(:img_uri, Map.get(assigns.card.data, :img_uri, nil)) ~H"""
{@title}
<%= @title %>

<%= if Enum.empty?(@inner_block), do: @message, else: render_slot(@inner_block) %>

<%= tag %>
""" end def handle_event(event_name, params, socket) do apply( socket.assigns.card.namespace, :handle_event, [event_name, params, socket.assigns.card] ) {:noreply, socket} end end