@use templates::base;
@use template_utils::*;
@use plume_models::notifications::Notification;

@(ctx: BaseContext, notifications: Vec<Notification>, page: i32, n_pages: i32)

@:base(ctx, "Notifications", {}, {}, {
    <h1>@i18n!(ctx.1, "Notifications")</h1>

    <div class="list">
        @for notification in notifications {
            <div class="card flex">
                <i class="icon @notification.icon_class() left-icon"></i>
                <main class="grow">
                    <h3>
                        @if let Some(url) = notification.get_url(ctx.0) {
                            <a href="@url">
                                @i18n!(ctx.1, notification.get_message(); notification.get_actor(ctx.0).name(ctx.0))
                            </a>
                        } else {
                            @i18n!(ctx.1, notification.get_message(); notification.get_actor(ctx.0).name(ctx.0))
                        }
                    </h3>
                    @if let Some(post) = notification.get_post(ctx.0) {
                        <p><a href="@post.url(ctx.0)">@post.title</a></p>
                    }
                </main>
                <p><small>@notification.creation_date.format("%B %e, %H:%M")</small></p>
            </div>
        }
    </div>
    @paginate(ctx.1, page, n_pages)
})