defmodule BrightWeb.StreamHTML do use BrightWeb, :html embed_templates "stream_html/*" @doc """ Renders a stream form. """ attr :changeset, Ecto.Changeset, required: true attr :action, :string, required: true def stream_form(assigns) def tag_opts(changeset) do existing_ids = changeset |> Ecto.Changeset.get_change(:tags, []) |> Enum.map(& &1.data.id) for tag <- Bright.Tags.list_tags(), do: [key: tag.name, value: tag.id, selected: tag.id in existing_ids] end def vod_opts(changeset) do existing_ids = changeset |> Ecto.Changeset.get_change(:vods, []) |> Enum.map(& &1.data.id) for vod <- Bright.Streams.list_vods(), do: [key: vod.id, value: vod.id, selected: vod.id in existing_ids] end def vtuber_opts(changeset) do existing_ids = changeset |> Ecto.Changeset.get_change(:vtubers, []) |> Enum.map(& &1.data.id) for vtuber <- Bright.Vtubers.list_vtubers(), do: [key: vtuber.display_name, value: vtuber.id, selected: vtuber.id in existing_ids] end def platform_opts(changeset) do existing_ids = changeset |> Ecto.Changeset.get_change(:vtubers, []) |> Enum.map(& &1.data.id) for platform <- Bright.Platforms.list_platforms(), do: [key: platform.name, value: platform.id, selected: platform.id in existing_ids] end end