defmodule ChiyaWeb.AdminComponents do use Phoenix.Component use Phoenix.VerifiedRoutes, endpoint: ChiyaWeb.Endpoint, router: ChiyaWeb.Router, statics: ChiyaWeb.static_paths() import ChiyaWeb.CoreComponents @doc """ Renders a UI for uploading files """ attr :upload, :map, required: true attr :cancel_upload, :string, default: "cancel-upload" def live_upload(assigns) do ~H"""
<.live_file_input upload={@upload} class="dark:text-gray-300" />
<%= for entry <- @upload.entries do %>
<.live_img_preview entry={entry} />
<%= entry.client_name %>
<%!-- entry.progress will update automatically for in-flight entries --%> <%= entry.progress %>% <%!-- a regular click event whose handler will invoke Phoenix.LiveView.cancel_upload/3 --%> <%!-- Phoenix.Component.upload_errors/2 returns a list of error atoms --%> <%= for err <- upload_errors(@upload, entry) do %>

<%= upload_error_to_string(err) %>

<% end %>
<% end %> <%!-- Phoenix.Component.upload_errors/1 returns a list of error atoms --%> <%= for err <- upload_errors(@upload) do %>

<%= upload_error_to_string(err) %>

<% end %>
""" end @doc """ Renders the admin menu bar """ attr :current_user, :map, required: true def admin_bar(assigns) do ~H""" """ end defp upload_error_to_string(:too_large), do: "Too large" defp upload_error_to_string(:too_many_files), do: "You have selected too many files" defp upload_error_to_string(:not_accepted), do: "You have selected an unacceptable file type" end