defmodule AmmopricesWeb.PriceComponents do @moduledoc false use Phoenix.Component attr :cents, :integer, required: true attr :class, :string, default: nil def price_per_round(assigns) do ~H""" {format_cpr(@cents)} """ end attr :in_stock, :boolean, required: true attr :class, :string, default: nil def stock_badge(assigns) do ~H""" {if @in_stock, do: "In Stock", else: "Out of Stock"} """ end attr :url, :string, required: true attr :name, :string, required: true attr :class, :string, default: nil def retailer_link(assigns) do ~H""" {@name} """ end defp format_cpr(nil), do: "--" defp format_cpr(cents) do dollars = cents / 100 "$#{:erlang.float_to_binary(dollars, decimals: 2)}" end end