{% macro render_reply(r, thread, current_user) -%}
	{% from "macros/reviews.html" import render_review_vote %}

	<li class="row my-2 mx-0">
		<div class="col-md-1 p-1">
			<a href="{{ url_for('users.profile', username=r.author.username) }}">
				<img class="img-fluid user-photo img-thumbnail img-thumbnail-1"
					src="{{ r.author.get_profile_pic_url() }}" loading="lazy">
			</a>
		</div>
		<div class="col pr-0">
			<div class="card">
				<div class="card-header">
					<a class="author {{ r.author.rank.name }} me-3"
							href="{{ url_for('users.profile', username=r.author.username) }}">
						{{ r.author.display_name }}
					</a>

					{% if r.author.username != r.author.display_name %}
						<span class="text-muted small me-2">
							({{ r.author.username }})
						</span>
					{% endif %}

					{% if r.author in thread.package.maintainers %}
						<span class="badge bg-dark">
							{{ _("Maintainer") }}
						</span>
					{% endif %}
					{% if r.author.rank == r.author.rank.BOT %}
						<span class="badge bg-dark">
							{{ r.author.rank.title }}
						</span>
					{% endif %}

					<a name="reply-{{ r.id }}" class="text-muted float-end"
							href="{{ r.get_url() }}" title="{{ r.created_at | full_datetime }}">
						{{ r.created_at | datetime }}
					</a>
				</div>

				<div class="card-body markdown">
					{% if r.check_perm(current_user, "DELETE_REPLY") %}
						<a class="float-end btn btn-secondary btn-sm ms-2"
								href="{{ url_for('threads.delete_reply', id=thread.id, reply=r.id) }}">
							<i class="fas fa-trash"></i>
						</a>
					{% endif %}
					{% if current_user != r.author %}
						<a class="float-end btn btn-secondary btn-sm ms-2"
								title="{{ _('Report') }}"
								href="{{ url_for('report.report', url=r.get_url()) }}">
							<i class="fas fa-flag me-1"></i>
						</a>
					{% endif %}

					{% if current_user == thread.author and thread.review and thread.first_reply == r %}
						<a class="float-end btn btn-primary btn-sm ms-2"
								href="{{ thread.review.package.get_url('packages.review') }}">
							<i class="fas fa-pen"></i>
						</a>
					{% elif r.check_perm(current_user, "EDIT_REPLY") %}
						<a class="float-end btn btn-primary btn-sm ms-2"
								href="{{ url_for('threads.edit_reply', id=thread.id, reply=r.id) }}">
							<i class="fas fa-pen"></i>
						</a>
					{% endif %}

					{{ r.comment | markdown }}

					{% if thread.first_reply == r and thread.review %}
						{{ render_review_vote(thread.review, current_user, thread.get_view_url()) }}
					{% endif %}
				</div>
			</div>
		</div>
	</li>
{% endmacro %}


{% macro render_status_update(r, thread, current_user) -%}
	<li class="row my-2 mx-0 align-items-center">
		<div class="col-md-1 p-1">
			<a href="{{ url_for('users.profile', username=r.author.username) }}">
				<img class="img-fluid user-photo img-thumbnail img-thumbnail-1"
					src="{{ r.author.get_profile_pic_url() }}" loading="lazy">
			</a>
		</div>
		<div class="col-auto">
			<a class="author {{ r.author.rank.name }}"
					href="{{ url_for('users.profile', username=r.author.username) }}">
				{{ r.author.display_name }}
			</a>
		</div>
		<div class="col pr-0 status-update">
			{{ r.comment | markdown }}
		</div>
		<div class="col-auto">
			<a name="reply-{{ r.id }}" class="text-muted float-end"
					href="{{ r.get_url() }}" title="{{ r.created_at | full_datetime }}">
				{{ r.created_at | datetime }}
			</a>
		</div>
	</li>
{% endmacro %}


{% macro render_thread(thread, current_user, form=None) -%}
<ul class="comments mt-4 mb-0">
	{% for r in thread.replies %}
		{% if r.is_status_update %}
			{{ render_status_update(r, thread, current_user) }}
		{% else %}
			{{ render_reply(r, thread, current_user) }}
		{% endif %}
	{% endfor %}
</ul>

{% if thread.locked %}
	<p class="my-0 py-4 text-center">
		<i class="fas fa-lock me-3"></i>
		{{ _("This thread has been locked by a moderator.") }}
	</p>
{% endif %}

{% if form == False %}
	<div class="row mt-1">
		<div class="col-md-1 p-1"></div>
		<div class="col">
			<a class="btn btn-primary ms-3" href="{{ url_for('threads.view', id=thread.id) }}">
				<i class="fas fa-reply me-1"></i>
				{{ _("Reply") }}
			</a>
		</div>
	</div>
{% endif %}

{% if current_user.is_authenticated and form != False %}
<div class="row mt-0 mb-4 comments mx-0">
	<div class="col-md-1 p-1">
		<img class="img-fluid user-photo img-thumbnail img-thumbnail-1"
			 src="{{ current_user.get_profile_pic_url() }}" loading="lazy">
	</div>
	<div class="col pr-0">
		<div class="card">
			<div class="card-header {{ current_user.rank.name }}">
				{{ current_user.display_name }}
				<a name="reply"></a>
			</div>

			{% if not current_user.can_comment_ratelimit() %}
				<div class="card-body">
					<textarea class="form-control" readonly disabled>{{ _("Please wait before commenting again.") }}</textarea><br />
					<input class="btn btn-primary" type="submit" disabled value="Comment" />
				</div>
			{% elif not thread.check_perm(current_user, "COMMENT_THREAD") %}
				<div class="card-body">
					{% if thread.locked %}
						<textarea class="form-control" readonly disabled>{{ _("This thread has been locked.") }}</textarea><br />
					{% else %}
						<textarea class="form-control" readonly disabled>{{ _("You don't have permission to post.") }}</textarea><br />
					{% endif %}
					<input class="btn btn-primary" type="submit" disabled value="Comment" />
				</div>
			{% elif form %}
				{% from "macros/forms.html" import render_field, render_submit_field %}
				<form method="post" action="{{ url_for('threads.view', id=thread.id) }}" class="card-body">
					{{ form.hidden_tag() }}
					{{ render_field(form.comment, fieldclass="form-control markdown", label="", data_enter_submit="1") }}
					{{ render_submit_field(form.btn_submit) }}
				</form>
			{% else %}
				<form method="post" action="{{ url_for('threads.view', id=thread.id)}}" class="card-body">
					<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
					<textarea class="form-control markdown" required maxlength=2000 name="comment" data-enter-submit="1"></textarea><br />
					<input class="btn btn-primary" name="btn_submit" type="submit" value="Comment" />
				</form>
			{% endif %}
		</div>
	</div>
</div>
{% endif %}
{% endmacro %}

{% macro render_compact_threadlist(threads) -%}
	{% for t in threads %}
		<a class="list-group-item list-group-item-action"
				href="{{ url_for('threads.view', id=t.id) }}">
			{% if t.private %}&#x1f512; {% endif %}
			<strong>{{ t.title }}</strong>
			by {{ t.author.display_name }}
		</a>
	{% else %}
		<p class="list-group-item"><i>{{ _("No threads found") }}</i></p>
	{% endfor %}
{% endmacro %}

{% macro render_threadlist(threads) -%}
	<div class="list-group-item">
		<div class="row text-muted">
			<span class="col-md">
				{{ _("Thread") }}
			</span>

			<span class="col-md-3">
				{{ _("Last Reply") }}
			</span>

			<span class="col-md-2"></span>
		</div>
	</div>

	{% for t in threads %}
		{% set replies = t.replies_count - 1 %}

		<a class="list-group-item list-group-item-action"
				href="{{ url_for('threads.view', id=t.id) }}">
			<div class="row">
				<div class="col-md">
					{% if not t.review and t.private %}
						<i class="fas fa-lock" style="color:#ffac33;"></i>
					{% elif not t.review %}
						<i class="fas fa-comment-alt" style="color:#666;"></i>
					{% elif t.review.rating > 3 %}
						<i class="fas fa-thumbs-up" style="color:#6f6;"></i>
					{% elif t.review.rating < 3 %}
						<i class="fas fa-thumbs-down" style="color:#f66;"></i>
					{% else %}
						<i class="fas fa-minus" style="color:#999"></i>
					{% endif %}
					<strong class="ms-1">
						{{ t.title }}
					</strong><br />
					<span>
						{{ t.author.display_name }}
					</span>
					<span class="text-muted ms-3" title="{{ t.created_at | full_datetime }}">
						{{ t.created_at | datetime }}
					</span>
				</div>

				{% if replies > 0 %}
					<span class="col-md-auto text-muted">
						{{ replies }}
						<i class="fas fa-comment ms-1"></i>
					</span>
				{% endif %}

				<div class="col-md-3">
					{% if replies > 0 %}
						{% set latest = t.get_latest_reply() %}
						<span>
							{{ latest.author.display_name }}
						</span><br />
						<span class="text-muted" title="{{ latest.created_at | full_datetime }}">
							{{ latest.created_at | datetime }}
						</span>
					{% endif %}
				</div>

				<div class="col-md-2 text-muted text-end">
					{% if t.package %}
						<img
							class="img-fluid"
							style="max-height: 22px; max-width: 22px;"
							src="{{ t.package.get_thumb_or_placeholder() }}" /><br />

						<span class="ps-2">
							{{ t.package.title }}
						</span>
					{% endif %}
				</div>
			</div>
		</a>
	{% else %}
		<p class="list-group-item"><i>{{ _("No threads found") }}</i></p>
	{% endfor %}
{% endmacro %}
