@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 {
        Utilise @software, version @instance.version.
        }
	<br>
        @if instance.reg {
            @if instance.requires_approval {
                <span class="moderated">Inscriptions soumises à approbation.</span>
            } else {
		<span class="open">Inscriptions ouvertes.</span>
	    }
        } else {
            <span class="closed">Inscriptions fermées.</span>
        }
      </p>
      @if !instance.description.trim().is_empty() || contact.is_some() {
        <div class="instance-info">
            @if !instance.description.trim().is_empty() {
                <h5 class="instance-description">Description:</h5>
                <div class="description">
                    <div class="please-stay">
                        @Html(instance.description.trim())
                    </div>
                </div>
            }
        </div>
        @if let Some(contact) = contact {
        <h5 class="instance-admin">Administré par:</h5>
        @:admin_html(contact, base)
        }
      }
    </section>