@use crate::{db::{Contact, Instance}, templates::admin_html};
@use activitystreams::iri_string::types::IriString;

@(instance: &Instance, software: Option<&str>, contact: Option<&Contact>, base: &IriString)

    <section class="instance">
      <h4 class="padded"><a href="@base">@instance.title</a></h4>
      <p class="padded">
        @if let Some(software) = software {
        Running @software, version @instance.version.
        }
        @if instance.reg {
        <br>Registration is open.
        @if instance.requires_approval {
        Accounts must be approved by an admin.
        }
        } else{
        Registration is closed
        }
      </p>
      @if !instance.description.trim().is_empty() || contact.is_some() {
      <div class="instance-info">
        @if !instance.description.trim().is_empty() {
        <h5 class="instance-description">@instance.title's description:</h5>
        <div class="description">
          <div class="please-stay">
            @Html(instance.description.trim())
          </div>
        </div>
        }
        @if let Some(contact) = contact {
        <h5 class="instance-admin">@instance.title's admin:</h5>
        @:admin_html(contact, base)
        }
      </div>
      }
    </section>