Tighten notes content logic
- Notes can have empty content (no harm) - Always default to "" instead of nil
This commit is contained in:
@@ -6,7 +6,7 @@ defmodule MusicLibrary.Notes.Note do
|
|||||||
@primary_key {:id, :binary_id, autogenerate: true}
|
@primary_key {:id, :binary_id, autogenerate: true}
|
||||||
schema "notes" do
|
schema "notes" do
|
||||||
field :entity, Ecto.Enum, values: [:record, :artist]
|
field :entity, Ecto.Enum, values: [:record, :artist]
|
||||||
field :content, :string
|
field :content, :string, default: ""
|
||||||
field :musicbrainz_id, Ecto.UUID
|
field :musicbrainz_id, Ecto.UUID
|
||||||
|
|
||||||
timestamps(type: :utc_datetime)
|
timestamps(type: :utc_datetime)
|
||||||
@@ -19,6 +19,6 @@ defmodule MusicLibrary.Notes.Note do
|
|||||||
:content,
|
:content,
|
||||||
:musicbrainz_id
|
:musicbrainz_id
|
||||||
])
|
])
|
||||||
|> validate_required([:entity, :content, :musicbrainz_id])
|
|> validate_required([:entity, :musicbrainz_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ defmodule MusicLibraryWeb.NotesComponent do
|
|||||||
defp find_or_initialize_note(%{entity: entity, musicbrainz_id: musicbrainz_id}) do
|
defp find_or_initialize_note(%{entity: entity, musicbrainz_id: musicbrainz_id}) do
|
||||||
case Notes.get_note(entity, musicbrainz_id) do
|
case Notes.get_note(entity, musicbrainz_id) do
|
||||||
nil ->
|
nil ->
|
||||||
%Note{entity: entity, musicbrainz_id: musicbrainz_id, content: ""}
|
%Note{entity: entity, musicbrainz_id: musicbrainz_id}
|
||||||
|
|
||||||
note ->
|
note ->
|
||||||
note
|
note
|
||||||
@@ -52,7 +52,7 @@ defmodule MusicLibraryWeb.NotesComponent do
|
|||||||
</.tabs_list>
|
</.tabs_list>
|
||||||
<.tabs_panel active={@mode == "read"} name="read">
|
<.tabs_panel active={@mode == "read"} name="read">
|
||||||
<article class="w-full mt-5 prose dark:prose-invert prose-zinc prose-sm prose-h1:text-sm">
|
<article class="w-full mt-5 prose dark:prose-invert prose-zinc prose-sm prose-h1:text-sm">
|
||||||
{render_notes(@form[:content].value)}
|
{render_content(@form[:content].value)}
|
||||||
</article>
|
</article>
|
||||||
</.tabs_panel>
|
</.tabs_panel>
|
||||||
<.tabs_panel active={@mode == "edit"} name="edit">
|
<.tabs_panel active={@mode == "edit"} name="edit">
|
||||||
@@ -156,8 +156,8 @@ defmodule MusicLibraryWeb.NotesComponent do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
defp render_notes(notes) do
|
defp render_content(content) do
|
||||||
(notes || "")
|
content
|
||||||
|> Markdown.to_html()
|
|> Markdown.to_html()
|
||||||
|> raw()
|
|> raw()
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user