From 47aeae5ffc9e58511709c6d976d5a315ecefb894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Assun=C3=A7=C3=A3o?= Date: Fri, 15 Dec 2023 16:45:11 +0000 Subject: [PATCH 1/2] Adding green color to tree entries that have examples or playground to make it easier to track which components are covered in the catalogue --- .gitignore | 1 + .../catalogue/components/component_tree.ex | 114 ++++++++++++------ lib/surface/catalogue/live/page_live.ex | 1 + 3 files changed, 77 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index a432dc9..30d9271 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ node_modules # Ignore Surface generated files assets/js/_hooks/ assets/css/_components.css +assets/css/_variants.js diff --git a/lib/surface/catalogue/components/component_tree.ex b/lib/surface/catalogue/components/component_tree.ex index 4888434..f993815 100644 --- a/lib/surface/catalogue/components/component_tree.ex +++ b/lib/surface/catalogue/components/component_tree.ex @@ -8,6 +8,7 @@ defmodule Surface.Catalogue.Components.ComponentTree do prop selected_component, :string prop single_catalogue?, :boolean prop components, :map + prop examples_and_playgrounds, :map def render(assigns) do ~F""" @@ -15,61 +16,88 @@ defmodule Surface.Catalogue.Components.ComponentTree do class="section column is-narrow is-narrow-mobile is-fullheight is-hidden-mobile" style="background-color: #f5f5f5; min-width: 270px;" > - {render_node(assigns, @components, @selected_component, @single_catalogue?)} + {render_node(assigns, @components, @selected_component, @single_catalogue?, @examples_and_playgrounds)} """ end - def render_node(assigns, node, selected_component, single_catalogue?, parent_keys \\ []) do + def render_node(assigns, node, selected_component, single_catalogue?, parent_keys \\ [], examples_and_playgrounds) do ~F""" """ end + def maybe_render_home_entry(assigns, parent_keys, selected_component) do + ~F""" +
  • + + + + + Home + +
  • + """ + end + + def maybe_render_component_entry(assigns, module, mod_path, selected_component, component_type, key, examples_and_playgrounds) do + ~F""" +
  • + + + + + {key} + +
  • + """ + end + + def maybe_render_single_catalog_components_entry(assigns, value, selected_component, single_catalogue?, parent_keys, mod_path, examples_and_playgrounds) do + ~F""" +
  • + + + + + Components + + {render_node(assigns, value, selected_component, single_catalogue?, mod_path, examples_and_playgrounds)} +
  • + """ + end + + def maybe_render_folder_entry(assigns, has_child_selected?, key, value, selected_component, single_catalogue?, parent_keys, mod_path, examples_and_playgrounds) do + ~F""" +
  • + + + + + {key} + + {render_node(assigns, value, selected_component, single_catalogue?, mod_path, examples_and_playgrounds)} +
  • + """ + end + defp component_icon(type) do case type do Surface.MacroComponent -> @@ -111,4 +139,12 @@ defmodule Surface.Catalogue.Components.ComponentTree do has_child_selected?(parent_keys, selected_component) or (single_catalogue? and length(parent_keys) == 1) end + + defp has_examples_or_playground?(module, examples_and_playgrounds) do + case examples_and_playgrounds[module] do + %{examples: [_one | _rest]} -> true + %{playgrounds: [_one | _rest]} -> true + _ -> false + end + end end diff --git a/lib/surface/catalogue/live/page_live.ex b/lib/surface/catalogue/live/page_live.ex index 11356bb..0b14372 100644 --- a/lib/surface/catalogue/live/page_live.ex +++ b/lib/surface/catalogue/live/page_live.ex @@ -81,6 +81,7 @@ defmodule Surface.Catalogue.PageLive do components={@components} selected_component={@component_name} single_catalogue?={@single_catalogue?} + examples_and_playgrounds={@examples_and_playgrounds} />
    From 25a4e92345448769ebc6953b3052703008a09be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Assun=C3=A7=C3=A3o?= Date: Fri, 15 Dec 2023 17:55:17 +0000 Subject: [PATCH 2/2] Formatting --- .../catalogue/components/component_tree.ex | 103 ++++++++++++++++-- 1 file changed, 91 insertions(+), 12 deletions(-) diff --git a/lib/surface/catalogue/components/component_tree.ex b/lib/surface/catalogue/components/component_tree.ex index f993815..3964396 100644 --- a/lib/surface/catalogue/components/component_tree.ex +++ b/lib/surface/catalogue/components/component_tree.ex @@ -16,12 +16,25 @@ defmodule Surface.Catalogue.Components.ComponentTree do class="section column is-narrow is-narrow-mobile is-fullheight is-hidden-mobile" style="background-color: #f5f5f5; min-width: 270px;" > - {render_node(assigns, @components, @selected_component, @single_catalogue?, @examples_and_playgrounds)} + {render_node( + assigns, + @components, + @selected_component, + @single_catalogue?, + @examples_and_playgrounds + )} """ end - def render_node(assigns, node, selected_component, single_catalogue?, parent_keys \\ [], examples_and_playgrounds) do + def render_node( + assigns, + node, + selected_component, + single_catalogue?, + parent_keys \\ [], + examples_and_playgrounds + ) do ~F"""
      {maybe_render_home_entry(assigns, parent_keys, selected_component)} @@ -31,11 +44,37 @@ defmodule Surface.Catalogue.Components.ComponentTree do module = Module.concat(mod_path), component_type = component_type(module), {has_child_selected?} = {has_child_selected?(mod_path, selected_component)}} - {maybe_render_component_entry(assigns, module, mod_path, selected_component, component_type, key, examples_and_playgrounds)} - - {maybe_render_single_catalog_components_entry(assigns, value, selected_component, single_catalogue?, parent_keys, mod_path, examples_and_playgrounds)} - - {maybe_render_folder_entry(assigns, has_child_selected?, key, value, selected_component, single_catalogue?, parent_keys, mod_path, examples_and_playgrounds)} + {maybe_render_component_entry( + assigns, + module, + mod_path, + selected_component, + component_type, + key, + examples_and_playgrounds + )} + + {maybe_render_single_catalog_components_entry( + assigns, + value, + selected_component, + single_catalogue?, + parent_keys, + mod_path, + examples_and_playgrounds + )} + + {maybe_render_folder_entry( + assigns, + has_child_selected?, + key, + value, + selected_component, + single_catalogue?, + parent_keys, + mod_path, + examples_and_playgrounds + )} {/for}
    """ @@ -54,7 +93,15 @@ defmodule Surface.Catalogue.Components.ComponentTree do """ end - def maybe_render_component_entry(assigns, module, mod_path, selected_component, component_type, key, examples_and_playgrounds) do + def maybe_render_component_entry( + assigns, + module, + mod_path, + selected_component, + component_type, + key, + examples_and_playgrounds + ) do ~F"""
  • @@ -79,12 +134,29 @@ defmodule Surface.Catalogue.Components.ComponentTree do Components - {render_node(assigns, value, selected_component, single_catalogue?, mod_path, examples_and_playgrounds)} + {render_node( + assigns, + value, + selected_component, + single_catalogue?, + mod_path, + examples_and_playgrounds + )}
  • """ end - def maybe_render_folder_entry(assigns, has_child_selected?, key, value, selected_component, single_catalogue?, parent_keys, mod_path, examples_and_playgrounds) do + def maybe_render_folder_entry( + assigns, + has_child_selected?, + key, + value, + selected_component, + single_catalogue?, + parent_keys, + mod_path, + examples_and_playgrounds + ) do ~F"""
  • @@ -93,7 +165,14 @@ defmodule Surface.Catalogue.Components.ComponentTree do {key} - {render_node(assigns, value, selected_component, single_catalogue?, mod_path, examples_and_playgrounds)} + {render_node( + assigns, + value, + selected_component, + single_catalogue?, + mod_path, + examples_and_playgrounds + )}
  • """ end