Current section

16 Versions

Jump to

Compare versions

3 files changed
+27 additions
-24 deletions
  @@ -5,9 +5,9 @@
5 5 {<<"elixir">>,<<"~> 1.13">>}.
6 6 {<<"files">>,
7 7 [<<"lib">>,<<"lib/sanity">>,<<"lib/sanity/components">>,
8 - <<"lib/sanity/components/image.ex">>,
9 - <<"lib/sanity/components/portable_text.ex">>,<<".formatter.exs">>,
10 - <<"mix.exs">>,<<"README.md">>,<<"LICENSE">>]}.
8 + <<"lib/sanity/components/portable_text.ex">>,
9 + <<"lib/sanity/components/image.ex">>,<<".formatter.exs">>,<<"mix.exs">>,
10 + <<"README.md">>,<<"LICENSE">>]}.
11 11 {<<"licenses">>,[<<"MIT">>]}.
12 12 {<<"links">>,
13 13 [{<<"GitHub">>,<<"https://github.com/balexand/sanity_components">>}]}.
  @@ -23,4 +23,4 @@
23 23 {<<"optional">>,false},
24 24 {<<"repository">>,<<"hexpm">>},
25 25 {<<"requirement">>,<<"~> 0.17">>}]]}.
26 - {<<"version">>,<<"0.7.0">>}.
26 + {<<"version">>,<<"0.8.0">>}.
  @@ -234,29 +234,32 @@ defmodule Sanity.Components.PortableText do
234 234 """
235 235 end
236 236
237 - defp marks(%{marks: [mark | remaining_marks]} = assigns) do
238 - mark_props =
239 - case Enum.find(assigns.value.mark_defs, &(&1._key == mark)) do
240 - nil ->
241 - %{
242 - mark_key: mark,
243 - mark_type: mark,
244 - value: nil
245 - }
246 -
247 - %{_type: type} = mark_def ->
248 - %{
249 - mark_key: mark,
250 - mark_type: type,
251 - value: mark_def
252 - }
253 - end
254 -
237 + defp marks(%{marks: [_ | _]} = assigns) do
255 238 ~H"""
256 - <.render_with mod={@mod} func={:mark} {mark_props}><.marks marks={remaining_marks} {shared_props(assigns)}><%= render_slot(@inner_block) %></.marks></.render_with>
239 + <.render_with mod={@mod} func={:mark} {mark_props(@value.mark_defs, List.first(@marks))}><.marks marks={remaining_marks(@marks)} {shared_props(assigns)}><%= render_slot(@inner_block) %></.marks></.render_with>
257 240 """
258 241 end
259 242
243 + defp mark_props(mark_defs, mark) do
244 + case Enum.find(mark_defs, &(&1._key == mark)) do
245 + nil ->
246 + %{
247 + mark_key: mark,
248 + mark_type: mark,
249 + value: nil
250 + }
251 +
252 + %{_type: type} = mark_def ->
253 + %{
254 + mark_key: mark,
255 + mark_type: type,
256 + value: mark_def
257 + }
258 + end
259 + end
260 +
261 + defp remaining_marks([_first | remaining]), do: remaining
262 +
260 263 @doc false
261 264 @impl true
262 265 def mark(%{mark_type: "em"} = assigns) do
  @@ -1,7 +1,7 @@
1 1 defmodule Sanity.Components.MixProject do
2 2 use Mix.Project
3 3
4 - @version "0.7.0"
4 + @version "0.8.0"
5 5
6 6 def project do
7 7 [