Packages

Clarity is an interactive introspection and visualization tool for Elixir projects, providing navigable graphs and diagrams for frameworks like Ash, Phoenix, and Ecto.

Current section

Files

Jump to
clarity lib clarity components core_components render_content.html.heex
Raw

lib/clarity/components/core_components/render_content.html.heex

<% content_props = %{
theme: @theme,
zoom_subgraph: @zoom_graph,
zoom_level: @zoom_level,
shown_vertex_types: @shown_vertex_types,
available_vertex_types: @available_vertex_types
} %>
<%= cond do %>
<% @content == nil -> %>
<.content_not_found_error />
<% @content.live_component? -> %>
<.live_component
module={@content.provider}
id="content-view"
vertex={@vertex}
lens={@lens}
{content_props}
/>
<% @content.live_view? -> %>
{live_render(@socket, @content.provider,
id: "content-view",
session: %{
"vertex" => @vertex,
"lens" => @lens
},
container: {:div, class: "content"}
)}
<% true -> %>
<%= case @content.render_static do %>
<% {:mermaid, content} -> %>
<.mermaid graph={content.(content_props)} class="content p-4" id="content-view-mermaid" />
<% {:viz, content} -> %>
<.viz graph={content.(content_props)} class="content p-4" id="content-view-viz" />
<% {:markdown, content} -> %>
<section class="content w-full flex justify-center">
<.markdown
content={content.(content_props)}
class="p-4 max-w-[100ch] w-full"
prefix={@prefix}
lens={@lens}
/>
</section>
<% end %>
<% end %>