From 6d99d289dfe349775d7852f13828ef49b2cf0b8f Mon Sep 17 00:00:00 2001
From: Adam Piontek <adam@73k.us>
Date: Thu, 25 Feb 2021 17:53:44 -0500
Subject: [PATCH] renamed icon_helpers.ex file

---
 lib/bones73k_web/views/icon_helpers.ex | 35 ++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 lib/bones73k_web/views/icon_helpers.ex

diff --git a/lib/bones73k_web/views/icon_helpers.ex b/lib/bones73k_web/views/icon_helpers.ex
new file mode 100644
index 0000000..ed5f7c1
--- /dev/null
+++ b/lib/bones73k_web/views/icon_helpers.ex
@@ -0,0 +1,35 @@
+defmodule Bones73kWeb.IconHelpers do
+  @moduledoc """
+  Generate SVG sprite use tags for SVG icons
+  """
+
+  use Phoenix.HTML
+  import Bones73k.Util.List
+  alias Bones73kWeb.Router.Helpers, as: Routes
+
+  def icon_div(conn, name, div_opts \\ [], svg_opts \\ []) do
+    content_tag(:div, tag_opts(name, div_opts)) do
+      icon_svg(conn, name, svg_opts)
+    end
+  end
+
+  def icon_svg(conn, name, opts \\ []) do
+    content_tag(:svg, tag_opts(name, opts)) do
+      tag(:use, "xlink:href": Routes.static_path(conn, "/images/icons.svg#" <> name))
+    end
+  end
+
+  defp tag_opts(name, opts) do
+    classes = "#{Keyword.get(opts, :class, "")} #{name}" |> String.trim_leading()
+    styles = Keyword.get(opts, :style)
+    width = Keyword.get(opts, :width)
+    height = Keyword.get(opts, :height)
+    id = Keyword.get(opts, :id)
+
+    [class: classes]
+    |> prepend_if(styles, {:style, styles})
+    |> prepend_if(width, {:style, width})
+    |> prepend_if(height, {:style, height})
+    |> prepend_if(id, {:id, id})
+  end
+end