Compare commits

..

2 commits

Author SHA1 Message Date
5dc2674955
fix(web): descr for server tl, title for home tl 2024-05-13 17:10:46 +02:00
0badc71c92
fix(web): attachments without media type show if img
nobody uses the type field and just mark everything as Document ughhh
and so those who mark image as Image and avoid a media_type because the
browser doesnt really need it get displayed as links, so added an ugly
special case
2024-05-13 17:09:35 +02:00
2 changed files with 13 additions and 3 deletions

View file

@ -55,7 +55,7 @@ pub fn App() -> impl IntoView {
view! { view! {
<nav class="w-100 mt-1 mb-1 pb-s"> <nav class="w-100 mt-1 mb-1 pb-s">
<code class="color ml-3" ><a class="upub-title" href={title_target} >μpub</a></code> <code class="color ml-3" ><a class="upub-title" href={title_target} >μpub</a></code>
<small class="ml-1 mr-1 hidden-on-tiny" ><a class="clean" href={title_target} >micro social network, federated</a></small> <small class="ml-1 mr-1 hidden-on-tiny" ><a class="clean" href="/web/server" >micro social network, federated</a></small>
/* TODO kinda jank with the float but whatever, will do for now */ /* TODO kinda jank with the float but whatever, will do for now */
<input type="submit" class="mr-2 rev" on:click=move |_| set_menu.set(!menu.get()) value="menu" style="float: right" /> <input type="submit" class="mr-2 rev" on:click=move |_| set_menu.set(!menu.get()) value="menu" style="float: right" />
</nav> </nav>

View file

@ -3,7 +3,7 @@ use std::sync::Arc;
use leptos::*; use leptos::*;
use crate::{prelude::*, URL_SENSITIVE}; use crate::{prelude::*, URL_SENSITIVE};
use apb::{target::Addressed, ActivityMut, Base, Collection, CollectionMut, Object, ObjectMut}; use apb::{target::Addressed, ActivityMut, Base, Collection, CollectionMut, Document, Object, ObjectMut};
#[component] #[component]
pub fn Attachment( pub fn Attachment(
@ -17,12 +17,22 @@ pub fn Attachment(
let media_type = object.media_type() let media_type = object.media_type()
.unwrap_or("image/png") // TODO weird defaulting to png????? .unwrap_or("image/png") // TODO weird defaulting to png?????
.to_string(); .to_string();
let kind = media_type let mut kind = media_type
.split('/') .split('/')
.next() .next()
.unwrap_or("image") .unwrap_or("image")
.to_string(); .to_string();
// TODO in theory we should match on document_type, but mastodon and misskey send all attachments
// as "Documents" regardless of type, so we're forced to ignore the actual AP type and just match
// using media_type, uffff
//
// those who correctly send Image type objects without a media type get shown as links here, this
// is a dirty fix to properly display as images
if kind == "link" && matches!(object.document_type(), Some(apb::DocumentType::Image)) {
kind = "image".to_string();
}
match kind.as_str() { match kind.as_str() {
"image" => "image" =>
view! { view! {