fix(web): variable width pretty uris

and jank fix for lemmy inline posts, ughh
This commit is contained in:
əlemi 2024-07-03 07:30:29 +02:00
parent 6c88dec148
commit 905564ce15
Signed by: alemi
GPG key ID: A4895B84D311642C
3 changed files with 6 additions and 6 deletions

View file

@ -80,7 +80,7 @@ pub fn Attachment(
view! {
<p class="center mt-s mb-s">
<a href={href.clone()} title={href.clone()} rel="noreferrer nofollow" target="_blank">
<input type="submit" class="w-100" value={Uri::pretty(&href)} title={object.name().unwrap_or_default().to_string()} />
<input style="max-width: 100%" type="submit" class="w-100" value={Uri::pretty(&href, 20)} title={object.name().unwrap_or_else(|_| href.as_str()).to_string()} />
</a>
</p>
}.into_view(),
@ -136,7 +136,7 @@ pub fn Object(object: crate::Object) -> impl IntoView {
>
<code class="color">&</code>
<small>
{Uri::pretty(&x)}
{Uri::pretty(&x, 30)}
</small>
</span>
</a>

View file

@ -20,7 +20,7 @@ pub fn ActorStrip(object: crate::Object) -> impl IntoView {
pub fn ActorBanner(object: crate::Object) -> impl IntoView {
match object.as_ref() {
serde_json::Value::String(id) => view! {
<div><b>?</b>" "<a class="clean hover" href={Uri::web(U::Actor, id)}>{Uri::pretty(id)}</a></div>
<div><b>?</b>" "<a class="clean hover" href={Uri::web(U::Actor, id)}>{Uri::pretty(id, 50)}</a></div>
},
serde_json::Value::Object(_) => {
let uid = object.id().unwrap_or_default().to_string();

View file

@ -204,12 +204,12 @@ impl Uri {
uriproxy::uri(URL_BASE, kind, id)
}
pub fn pretty(url: &str) -> String {
pub fn pretty(url: &str, len: usize) -> String {
let bare = url.replace("https://", "");
if bare.len() < 50 {
if bare.len() < len {
bare
} else {
format!("{}..", bare.get(..50).unwrap_or_default())
format!("{}..", bare.get(..len).unwrap_or_default())
}.replace('/', "\u{200B}/\u{200B}")
}