@use crate::{config::{Config, UrlKind}, templates::statics::index_css};
@use activitystreams::primitives::XsdAnyUri;

@(listeners: &[XsdAnyUri], config: &Config)

<!doctype html>
<html>
    <head lang="en">
        <meta charset="utf-8"/>
        <title>@config.hostname() | ActivityPub Relay</title>
        <link rel="stylesheet" href="/static/@index_css.name" type="text/css" />
    </head>
    <body>
        <header>
            <h1>Welcome to @config.software_name() on @config.hostname()</h1>
        </header>
        <main>
            <section>
                <h3>Connected Servers:</h3>
                @if listeners.is_empty() {
                    <p>There are no connected servers at this time.</p>
                } else {
                    <ul>
                        @for listener in listeners {
                            @if let Some(domain) = listener.as_url().domain() {
                                <li>@domain</li>
                            }
                        }
                    </ul>
                }
            </section>
            <section>
                <h3>Joining</h3>
                <p>
                    If you are the admin of a server that supports activitypub relays, you can add
                    this relay to your server.
                </p>
                <h4>Mastodon</h4>
                <p>
                    Mastodon admins can add this relay by adding
                    <pre>@config.generate_url(UrlKind::Inbox)</pre> in their relay settings.
                </p>
                <h4>Pleroma</h4>
                <p>
                    Pleroma admins can add this relay by adding
                    <pre>@config.generate_url(UrlKind::Actor)</pre>
                    to their relay settings (I don't actually know how pleroma handles adding
                    relays, is it still a mix command?).
                </p>
                <h4>Others</h4>
                <p>
                    Consult the documentation for your server. It's likely that it follows either
                    Mastodon or Pleroma's relay formatting.
                </p>
            </section>
        </main>
        <footer>
            <p>
                The source code for this project can be found at
                <a href="@config.source_code()">@config.source_code()</a>
            </p>
        </footer>
    </body>
</html>