pinakes-ui: streamline sidebar design

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0176fa480e5ba40eea5a39685a4f97896a6a6964
This commit is contained in:
raf 2026-02-03 10:25:31 +03:00
commit 278bcaa4b0
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
25 changed files with 1805 additions and 1686 deletions

View file

@ -231,14 +231,14 @@ pub fn Detail(
media_type: "audio".to_string(),
title: media.title.clone(),
thumbnail_url: if has_thumbnail { Some(thumb_for_player.clone()) } else { None },
autoplay: autoplay,
autoplay,
}
} else if category == "video" {
MediaPlayer {
src: stream_url.clone(),
media_type: "video".to_string(),
title: media.title.clone(),
autoplay: autoplay,
autoplay,
}
} else if category == "image" {
if has_thumbnail {
@ -298,40 +298,16 @@ pub fn Detail(
"Open"
}
if is_editing {
button {
class: "btn btn-primary",
onclick: on_save_click,
"Save"
}
button {
class: "btn btn-ghost",
onclick: on_cancel_click,
"Cancel"
}
button { class: "btn btn-primary", onclick: on_save_click, "Save" }
button { class: "btn btn-ghost", onclick: on_cancel_click, "Cancel" }
} else {
button {
class: "btn btn-secondary",
onclick: on_edit_click,
"Edit"
}
button { class: "btn btn-secondary", onclick: on_edit_click, "Edit" }
}
if confirm_delete() {
button {
class: "btn btn-danger",
onclick: on_confirm_delete,
"Confirm Delete"
}
button {
class: "btn btn-ghost",
onclick: on_cancel_delete,
"Cancel"
}
button { class: "btn btn-danger", onclick: on_confirm_delete, "Confirm Delete" }
button { class: "btn btn-ghost", onclick: on_cancel_delete, "Cancel" }
} else {
button {
class: "btn btn-danger",
onclick: on_delete_click,
"Delete"
}
button { class: "btn btn-danger", onclick: on_delete_click, "Delete" }
}
}
@ -373,11 +349,13 @@ pub fn Detail(
}
div { class: "detail-field",
label { class: "detail-label",
{match category {
"image" => "Photographer",
"document" | "text" => "Author",
_ => "Artist",
}}
{
match category {
"image" => "Photographer",
"document" | "text" => "Author",
_ => "Artist",
}
}
}
input {
r#type: "text",
@ -458,11 +436,13 @@ pub fn Detail(
if !artist.is_empty() {
div { class: "detail-field",
span { class: "detail-label",
{match category {
"image" => "Photographer",
"document" | "text" => "Author",
_ => "Artist",
}}
{
match category {
"image" => "Photographer",
"document" | "text" => "Author",
_ => "Artist",
}
}
}
span { class: "detail-value", "{artist}" }
}
@ -482,7 +462,9 @@ pub fn Detail(
}
}
// Year: audio, video, document, when non-empty
if (category == "audio" || category == "video" || category == "document") && !year_str.is_empty() {
if (category == "audio" || category == "video" || category == "document")
&& !year_str.is_empty()
{
div { class: "detail-field",
span { class: "detail-label", "Year" }
span { class: "detail-value", "{year_str}" }
@ -524,9 +506,7 @@ pub fn Detail(
let tag_id = tag.id.clone();
let media_id_untag = id.clone();
rsx! {
span {
class: "tag-badge",
key: "{tag_id}",
span { class: "tag-badge", key: "{tag_id}",
"{tag.name}"
span {
class: "tag-remove",
@ -552,11 +532,7 @@ pub fn Detail(
let tid = tag.id.clone();
let tname = tag.name.clone();
rsx! {
option {
key: "{tid}",
value: "{tid}",
"{tname}"
}
option { key: "{tid}", value: "{tid}", "{tname}" }
}
}
}
@ -576,10 +552,8 @@ pub fn Detail(
h4 { class: "card-title", "Technical Metadata" }
}
div { class: "detail-grid",
for (key, _field_type, value) in system_fields.iter() {
div {
class: "detail-field",
key: "{key}",
for (key , _field_type , value) in system_fields.iter() {
div { class: "detail-field", key: "{key}",
span { class: "detail-label", "{key}" }
span { class: "detail-value", "{value}" }
}
@ -595,14 +569,12 @@ pub fn Detail(
}
if has_user_fields {
div { class: "detail-grid",
for (key, field_type, value) in user_fields.iter() {
for (key , field_type , value) in user_fields.iter() {
{
let field_name = key.clone();
let media_id_del = id.clone();
rsx! {
div {
class: "detail-field",
key: "{field_name}",
div { class: "detail-field", key: "{field_name}",
span { class: "detail-label", "{key} ({field_type})" }
div { class: "flex-row",
span { class: "detail-value", "{value}" }