Current section
16 Versions
Jump to
Current section
16 Versions
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 | [ |