Tighten notes content logic

- Notes can have empty content (no harm)
- Always default to "" instead of nil
This commit is contained in:
Claudio Ortolina
2025-09-23 08:45:51 +03:00
parent be28f6a7b4
commit f5c60d2cd1
2 changed files with 6 additions and 6 deletions
+2 -2
View File
@@ -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