@use plume_models::medias::*;
@use templates::base;
@use template_utils::*;
@use routes::*;

@(ctx: BaseContext, medias: Vec<Media>, page: i32, n_pages: i32)

@:base(ctx, i18n!(ctx.1, "Your media"), {}, {}, {
    <h1>@i18n!(ctx.1, "Your media")</h1>
    <div>
        <a href="@uri!(medias::new)" class="inline-block button">@i18n!(ctx.1, "Upload")</a>
    </div>

    @if medias.is_empty() {
        <p>@i18n!(ctx.1, "You don't have any media yet.")</p>
    }

    <div class="cards spaced">
        @for media in medias {
          <div class="card">
              <div class="cover media-preview @media.category().to_string()"
                @if media.category() == MediaCategory::Image {
                  style="background-image: url('@media.url(ctx.0).unwrap_or_default()')"
                }
              ></div>
              <main>
                  <p class="p-summary">@media.alt_text</p>
                  @if let Some(cw) = media.content_warning {
                      <p>@i18n!(ctx.1, "Content warning: {0}"; cw)</p>
                  }
              </main>
              <footer>
                <form action="@uri!(medias::delete: id = media.id)" class="inline" method="POST">
                    <input type="submit" value="@i18n!(ctx.1, "Delete")"/>
                </form>
                &mdash;
                <a href="@uri!(medias::details: id = media.id)">@i18n!(ctx.1, "Details")</a>
              </footer>
          </div>
        }
    </div>
    @paginate(ctx.1, page, n_pages)
})