defmodule ExshomePlayer.Web.Live.Playlist do
@moduledoc """
Playlist page.
"""
alias ExshomePlayer.Schemas.Track
alias ExshomePlayer.Services.Playlist
use ExshomeWeb.Live.AppPage,
icon: "📃",
dependencies: [{Playlist, :playlist}]
@impl LiveView
def handle_event("play", %{"id" => id}, %Socket{} = socket) do
Playlist.play(id)
{:noreply, socket}
end
@impl LiveView
def handle_event("delete", %{"id" => id}, %Socket{} = socket) do
id
|> Track.get!()
|> Track.delete!()
{:noreply, socket}
end
def handle_event("edit", %{"id" => id}, %Socket{} = socket) do
{:noreply, open_modal(socket, ExshomePlayer.Web.Live.EditLinkModal, %{"track_id" => id})}
end
@impl LiveView
def handle_event("open_file_modal", _, %Socket{} = socket) do
{:noreply, open_modal(socket, ExshomePlayer.Web.Live.UploadFileModal)}
end
@impl LiveView
def handle_event("open_new_link_modal", _, %Socket{} = socket) do
{:noreply, open_modal(socket, ExshomePlayer.Web.Live.EditLinkModal)}
end
end