44 lines
830 B
Rust
44 lines
830 B
Rust
use dioxus::prelude::*;
|
|
|
|
use crate::{HOST, rpc::aoba::MediaModel};
|
|
|
|
#[derive(PartialEq, Clone, Props)]
|
|
pub struct MediaItemProps {
|
|
pub item: MediaModel,
|
|
}
|
|
|
|
#[component]
|
|
pub fn MediaItem(props: MediaItemProps) -> Element {
|
|
let mtype = props.item.media_type().as_str_name();
|
|
let filename = props.item.file_name;
|
|
let id = props.item.media_id.unwrap().value;
|
|
|
|
#[cfg(debug_assertions)]
|
|
let src = format!("{HOST}/m/thumb/{id}");
|
|
#[cfg(not(debug_assertions))]
|
|
let src = format!("https://aoba.app/m/thumb/{id}");
|
|
// let url = "https://aoba.app/i/{}";
|
|
rsx! {
|
|
div{
|
|
class: "mediaItem",
|
|
img{ src: src }
|
|
div {
|
|
class: "info",
|
|
span{
|
|
class: "name",
|
|
"{filename}"
|
|
},
|
|
div{
|
|
class: "details",
|
|
span{
|
|
"{mtype}"
|
|
},
|
|
span{
|
|
"{props.item.view_count}"
|
|
},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|