Move format_duration/1 inside the only component where it's used

This commit is contained in:
Claudio Ortolina
2025-05-27 15:08:38 +01:00
parent c0ef2038e7
commit d954a3f196
2 changed files with 38 additions and 43 deletions
@@ -356,44 +356,6 @@ defmodule MusicLibraryWeb.RecordComponents do
end
end
def format_duration(milliseconds) do
milliseconds
|> System.convert_time_unit(:millisecond, :second)
|> format_seconds()
end
defp format_seconds(seconds) when seconds <= 59 do
"0:#{zero_pad(seconds)}"
end
defp format_seconds(seconds) do
minutes = div(seconds, 60)
remaining_seconds = rem(seconds, 60)
format_minutes(minutes, remaining_seconds)
end
defp format_minutes(minutes, seconds) when minutes <= 59 do
"#{minutes}:#{zero_pad(seconds)}"
end
defp format_minutes(minutes, seconds) do
hours = div(minutes, 60)
remaining_minutes = rem(minutes, 60)
format_hours(hours, remaining_minutes, seconds)
end
defp format_hours(hours, minutes, seconds) do
"#{hours}:#{zero_pad(minutes)}:#{zero_pad(seconds)}"
end
defp zero_pad(integer) do
integer
|> to_string()
|> String.pad_leading(2, "0")
end
def toggle_actions_menu(record_id) do
JS.toggle(to: "#actions-#{record_id}")
|> JS.toggle_class("pointer-events-none", to: "#records > li")
@@ -2,11 +2,6 @@ defmodule MusicLibraryWeb.ReleaseComponent do
use MusicLibraryWeb, :live_component
use Gettext, backend: MusicLibraryWeb.Gettext
import MusicLibraryWeb.RecordComponents,
only: [
format_duration: 1
]
alias MusicLibrary.ScrobbleActivity
def open(id), do: Fluxon.open_dialog(id)
@@ -195,4 +190,42 @@ defmodule MusicLibraryWeb.ReleaseComponent do
gettext("Disc %{no}", %{no: medium.number})
end
end
defp format_duration(milliseconds) do
milliseconds
|> System.convert_time_unit(:millisecond, :second)
|> format_seconds()
end
defp format_seconds(seconds) when seconds <= 59 do
"0:#{zero_pad(seconds)}"
end
defp format_seconds(seconds) do
minutes = div(seconds, 60)
remaining_seconds = rem(seconds, 60)
format_minutes(minutes, remaining_seconds)
end
defp format_minutes(minutes, seconds) when minutes <= 59 do
"#{minutes}:#{zero_pad(seconds)}"
end
defp format_minutes(minutes, seconds) do
hours = div(minutes, 60)
remaining_minutes = rem(minutes, 60)
format_hours(hours, remaining_minutes, seconds)
end
defp format_hours(hours, minutes, seconds) do
"#{hours}:#{zero_pad(minutes)}:#{zero_pad(seconds)}"
end
defp zero_pad(integer) do
integer
|> to_string()
|> String.pad_leading(2, "0")
end
end