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}
|
||||
schema "notes" do
|
||||
field :entity, Ecto.Enum, values: [:record, :artist]
|
||||
field :content, :string
|
||||
field :content, :string, default: ""
|
||||
field :musicbrainz_id, Ecto.UUID
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
@@ -19,6 +19,6 @@ defmodule MusicLibrary.Notes.Note do
|
||||
:content,
|
||||
:musicbrainz_id
|
||||
])
|
||||
|> validate_required([:entity, :content, :musicbrainz_id])
|
||||
|> validate_required([:entity, :musicbrainz_id])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -25,7 +25,7 @@ defmodule MusicLibraryWeb.NotesComponent do
|
||||
defp find_or_initialize_note(%{entity: entity, musicbrainz_id: musicbrainz_id}) do
|
||||
case Notes.get_note(entity, musicbrainz_id) do
|
||||
nil ->
|
||||
%Note{entity: entity, musicbrainz_id: musicbrainz_id, content: ""}
|
||||
%Note{entity: entity, musicbrainz_id: musicbrainz_id}
|
||||
|
||||
note ->
|
||||
note
|
||||
@@ -52,7 +52,7 @@ defmodule MusicLibraryWeb.NotesComponent do
|
||||
</.tabs_list>
|
||||
<.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">
|
||||
{render_notes(@form[:content].value)}
|
||||
{render_content(@form[:content].value)}
|
||||
</article>
|
||||
</.tabs_panel>
|
||||
<.tabs_panel active={@mode == "edit"} name="edit">
|
||||
@@ -156,8 +156,8 @@ defmodule MusicLibraryWeb.NotesComponent do
|
||||
end
|
||||
end
|
||||
|
||||
defp render_notes(notes) do
|
||||
(notes || "")
|
||||
defp render_content(content) do
|
||||
content
|
||||
|> Markdown.to_html()
|
||||
|> raw()
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user