From 02ac18da5128810c78f4930fa428bd8a7bffb1c3 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 23 May 2025 08:53:04 +0200 Subject: [PATCH] Change display of quote posts to strip fallback link and preview cards (#34772) --- app/javascript/mastodon/components/status.jsx | 16 ++++++++++++++-- .../status/components/detailed_status.tsx | 9 +++++++-- app/javascript/styles/mastodon/components.scss | 4 ++++ lib/sanitize_ext/sanitize_config.rb | 2 ++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 26d9c6d33f..39b6e89902 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -519,7 +519,7 @@ class Status extends ImmutablePureComponent { ); } - } else if (status.get('card')) { + } else if (status.get('card') && !status.get('quote')) { media = ( {!skipPrepend && prepend} -
+
{(connectReply || connectUp || connectToRoot) &&
}
diff --git a/app/javascript/mastodon/features/status/components/detailed_status.tsx b/app/javascript/mastodon/features/status/components/detailed_status.tsx index aa79a82f68..650e439348 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.tsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.tsx @@ -227,7 +227,7 @@ export const DetailedStatus: React.FC<{ /> ); } - } else if (status.get('card')) { + } else if (status.get('card') && !status.get('quote')) { media = ( -
+
{status.get('visibility') === 'direct' && (
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index e2ef9af530..dd513af737 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1421,6 +1421,10 @@ body > [data-popper-placement] { } } +.status--has-quote .quote-inline { + display: none; +} + .status { padding: 16px; min-height: 54px; diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb index ac97dc186d..ab166f52a8 100644 --- a/lib/sanitize_ext/sanitize_config.rb +++ b/lib/sanitize_ext/sanitize_config.rb @@ -31,6 +31,7 @@ class Sanitize next true if /^(h|p|u|dt|e)-/.match?(e) # microformats classes next true if /^(mention|hashtag)$/.match?(e) # semantic classes next true if /^(ellipsis|invisible)$/.match?(e) # link formatting classes + next true if e == 'quote-inline' end node['class'] = class_list.join(' ') @@ -110,6 +111,7 @@ class Sanitize 'span' => %w(class translate), 'ol' => %w(start reversed), 'li' => %w(value), + 'p' => %w(class), }, add_attributes: {