@use plume_models::medias::*;
@use crate::template_utils::*;

@(ctx: BaseContext, id: &str, title: String, optional: bool, medias: Vec<Media>, selected: Option<i32>)

<label for="@id" dir="auto">
	@title
	@if optional {
		<small>@i18n!(ctx.1, "Optional")</small>
	}
</label>
<select id="@id" name="@id">
    <option value="none" @if selected.is_none() { selected }>@i18n!(ctx.1, "None")</option>
    @for media in medias {
        @if media.category() == MediaCategory::Image {
            <option value="@media.id" @if selected.map(|c| c == media.id).unwrap_or(false) { selected } dir="auto">
                @if !media.alt_text.is_empty() {
                    @media.alt_text
                } else {
                    @media.content_warning.unwrap_or_else(|| i18n!(ctx.1, "No description")))
                }
            </option>
        }
    }
</select>