From c84f36d764a09d4c1e3b92be2f454a104542491a Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Sat, 13 Sep 2025 12:12:08 +0800 Subject: [PATCH] Experiment: show domain for non-native QPs --- src/components/status.css | 10 ++ src/components/status.jsx | 7 ++ src/locales/en.po | 232 +++++++++++++++++++------------------- src/utils/unfurl-link.js | 2 + 4 files changed, 135 insertions(+), 116 deletions(-) diff --git a/src/components/status.css b/src/components/status.css index edb11143..2c2bdc50 100644 --- a/src/components/status.css +++ b/src/components/status.css @@ -485,6 +485,16 @@ padding-inline-start: 12px; } +.status > .container .status-quote-meta { + font-size: small; + color: var(--link-color); + margin-block: -4px 2px; + + .status-card-link:visited & { + color: var(--link-visited-color); + } +} + .status > .container > .meta { display: flex; gap: 4px; diff --git a/src/components/status.jsx b/src/components/status.jsx index 8d467a4a..b4cdf37b 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -295,6 +295,7 @@ function Status({ allowFilters, onMediaClick, quoted, + quoteDomain, onStatusLinkClick = () => {}, showFollowedTags, allowContextMenu, @@ -1838,6 +1839,11 @@ function Status({ )}
+ {!!quoteDomain && ( +
+ {quoteDomain} +
+ )} {!!(status.account || createdAt) && (
@@ -2711,6 +2717,7 @@ const QuoteStatuses = memo(({ id, instance, level = 0 }) => { instance={q.instance} size="s" quoted={level + 1} + quoteDomain={q.originalDomain} enableCommentHint /> diff --git a/src/locales/en.po b/src/locales/en.po index 2d039fda..e41b14df 100644 --- a/src/locales/en.po +++ b/src/locales/en.po @@ -34,7 +34,7 @@ msgstr "" #: src/components/account-block.jsx:190 #: src/components/account-info.jsx:675 -#: src/components/status.jsx:528 +#: src/components/status.jsx:529 msgid "Group" msgstr "" @@ -115,11 +115,11 @@ msgstr "" #: src/components/media-attachment.jsx:380 #: src/components/media-modal.jsx:363 #: src/components/related-actions.jsx:238 -#: src/components/status.jsx:1780 -#: src/components/status.jsx:1797 -#: src/components/status.jsx:1928 -#: src/components/status.jsx:2552 -#: src/components/status.jsx:2555 +#: src/components/status.jsx:1781 +#: src/components/status.jsx:1798 +#: src/components/status.jsx:1934 +#: src/components/status.jsx:2558 +#: src/components/status.jsx:2561 #: src/pages/account-statuses.jsx:539 #: src/pages/accounts.jsx:118 #: src/pages/hashtag.jsx:203 @@ -224,7 +224,7 @@ msgid "Original" msgstr "" #: src/components/account-info.jsx:943 -#: src/components/status.jsx:2337 +#: src/components/status.jsx:2343 #: src/pages/catchup.jsx:70 #: src/pages/catchup.jsx:1446 #: src/pages/catchup.jsx:2059 @@ -272,8 +272,8 @@ msgstr "View post stats" #: src/components/shortcuts-settings.jsx:230 #: src/components/shortcuts-settings.jsx:583 #: src/components/shortcuts-settings.jsx:783 -#: src/components/status.jsx:2751 -#: src/components/status.jsx:2963 +#: src/components/status.jsx:2758 +#: src/components/status.jsx:2970 #: src/components/translated-bio-sheet.jsx:21 #: src/pages/accounts.jsx:45 #: src/pages/catchup.jsx:1582 @@ -492,7 +492,7 @@ msgid "Attachment #{i} failed" msgstr "Attachment #{i} failed" #: src/components/compose.jsx:1262 -#: src/components/status.jsx:2112 +#: src/components/status.jsx:2118 #: src/components/timeline.jsx:1016 msgid "Content warning" msgstr "" @@ -549,7 +549,7 @@ msgid "Quiet public" msgstr "Quiet public" #: src/components/compose.jsx:1717 -#: src/components/status.jsx:1992 +#: src/components/status.jsx:1998 #: src/utils/visibility-text.jsx:8 msgid "Private mention" msgstr "" @@ -560,10 +560,10 @@ msgstr "Schedule" #: src/components/compose.jsx:1725 #: src/components/keyboard-shortcuts-help.jsx:155 -#: src/components/status.jsx:974 -#: src/components/status.jsx:1760 +#: src/components/status.jsx:975 #: src/components/status.jsx:1761 -#: src/components/status.jsx:2456 +#: src/components/status.jsx:1762 +#: src/components/status.jsx:2462 msgid "Reply" msgstr "" @@ -636,7 +636,7 @@ msgstr "" #: src/components/drafts.jsx:126 #: src/components/list-add-edit.jsx:188 -#: src/components/status.jsx:1377 +#: src/components/status.jsx:1378 #: src/pages/filters.jsx:603 #: src/pages/scheduled-posts.jsx:368 msgid "Delete…" @@ -938,10 +938,10 @@ msgid "<0>l or <1>f" msgstr "" #: src/components/keyboard-shortcuts-help.jsx:176 -#: src/components/status.jsx:982 -#: src/components/status.jsx:2483 -#: src/components/status.jsx:2506 -#: src/components/status.jsx:2507 +#: src/components/status.jsx:983 +#: src/components/status.jsx:2489 +#: src/components/status.jsx:2512 +#: src/components/status.jsx:2513 msgid "Boost" msgstr "" @@ -950,9 +950,9 @@ msgid "<0>Shift + <1>b" msgstr "" #: src/components/keyboard-shortcuts-help.jsx:184 -#: src/components/status.jsx:1045 -#: src/components/status.jsx:2531 -#: src/components/status.jsx:2532 +#: src/components/status.jsx:1046 +#: src/components/status.jsx:2537 +#: src/components/status.jsx:2538 msgid "Bookmark" msgstr "" @@ -1035,14 +1035,14 @@ msgid "Media description" msgstr "" #: src/components/media-alt-modal.jsx:67 -#: src/components/status.jsx:1088 -#: src/components/status.jsx:1097 +#: src/components/status.jsx:1089 +#: src/components/status.jsx:1098 #: src/components/translation-block.jsx:239 msgid "Translate" msgstr "" #: src/components/media-alt-modal.jsx:78 -#: src/components/status.jsx:1116 +#: src/components/status.jsx:1117 msgid "Speak" msgstr "" @@ -1169,8 +1169,8 @@ msgstr "" #: src/components/media-post.jsx:133 #: src/components/status-compact.jsx:70 -#: src/components/status.jsx:2889 -#: src/components/status.jsx:2967 +#: src/components/status.jsx:2896 +#: src/components/status.jsx:2974 #: src/components/timeline.jsx:1005 #: src/pages/catchup.jsx:74 #: src/pages/catchup.jsx:1878 @@ -1491,8 +1491,8 @@ msgid "[Unknown notification type: {type}]" msgstr "" #: src/components/notification.jsx:451 -#: src/components/status.jsx:1059 -#: src/components/status.jsx:1069 +#: src/components/status.jsx:1060 +#: src/components/status.jsx:1070 msgid "Boosted/Liked by…" msgstr "" @@ -1524,13 +1524,13 @@ msgstr "" #: src/components/open-link-sheet.jsx:30 #: src/components/related-actions.jsx:492 -#: src/components/status.jsx:1202 +#: src/components/status.jsx:1203 msgid "Link copied" msgstr "" #: src/components/open-link-sheet.jsx:33 #: src/components/related-actions.jsx:495 -#: src/components/status.jsx:1205 +#: src/components/status.jsx:1206 msgid "Unable to copy link" msgstr "" @@ -1542,13 +1542,13 @@ msgstr "Open link?" #: src/components/post-embed-modal.jsx:232 #: src/components/related-actions.jsx:501 #: src/components/shortcuts-settings.jsx:1059 -#: src/components/status.jsx:1211 +#: src/components/status.jsx:1212 msgid "Copy" msgstr "" #: src/components/open-link-sheet.jsx:82 #: src/components/related-actions.jsx:522 -#: src/components/status.jsx:1233 +#: src/components/status.jsx:1234 msgid "Share…" msgstr "" @@ -1616,7 +1616,7 @@ msgid "Ending" msgstr "Ending" #: src/components/post-embed-modal.jsx:201 -#: src/components/status.jsx:1246 +#: src/components/status.jsx:1247 msgid "Embed post" msgstr "" @@ -1808,7 +1808,7 @@ msgstr "Show featured profiles" #: src/components/related-actions.jsx:516 #: src/components/shortcuts-settings.jsx:1077 -#: src/components/status.jsx:1227 +#: src/components/status.jsx:1228 msgid "Sharing doesn't seem to work." msgstr "" @@ -2146,7 +2146,7 @@ msgid "Move down" msgstr "" #: src/components/shortcuts-settings.jsx:379 -#: src/components/status.jsx:1339 +#: src/components/status.jsx:1340 #: src/pages/list.jsx:195 msgid "Edit" msgstr "" @@ -2345,268 +2345,268 @@ msgstr "" msgid "Import/export settings from/to instance server (Very experimental)" msgstr "" -#: src/components/status.jsx:552 +#: src/components/status.jsx:553 msgid "<0/> <1>boosted" msgstr "<0/> <1>boosted" -#: src/components/status.jsx:655 +#: src/components/status.jsx:656 msgid "Sorry, your current logged-in instance can't interact with this post from another instance." msgstr "" #. placeholder {0}: username || acct -#: src/components/status.jsx:809 +#: src/components/status.jsx:810 msgid "Unliked @{0}'s post" msgstr "" #. placeholder {0}: username || acct -#: src/components/status.jsx:810 +#: src/components/status.jsx:811 msgid "Liked @{0}'s post" msgstr "Liked @{0}'s post" #. placeholder {0}: username || acct -#: src/components/status.jsx:849 +#: src/components/status.jsx:850 msgid "Unbookmarked @{0}'s post" msgstr "Unbookmarked @{0}'s post" #. placeholder {0}: username || acct -#: src/components/status.jsx:850 +#: src/components/status.jsx:851 msgid "Bookmarked @{0}'s post" msgstr "Bookmarked @{0}'s post" -#: src/components/status.jsx:951 +#: src/components/status.jsx:952 msgid "Some media have no descriptions." msgstr "" #. placeholder {0}: rtf.format(-statusMonthsAgo, 'month') -#: src/components/status.jsx:958 +#: src/components/status.jsx:959 msgid "Old post (<0>{0})" msgstr "" -#: src/components/status.jsx:982 -#: src/components/status.jsx:1022 -#: src/components/status.jsx:2483 -#: src/components/status.jsx:2506 +#: src/components/status.jsx:983 +#: src/components/status.jsx:1023 +#: src/components/status.jsx:2489 +#: src/components/status.jsx:2512 msgid "Unboost" msgstr "" -#: src/components/status.jsx:998 -#: src/components/status.jsx:2498 +#: src/components/status.jsx:999 +#: src/components/status.jsx:2504 msgid "Quote" msgstr "" #. placeholder {0}: username || acct -#: src/components/status.jsx:1010 -#: src/components/status.jsx:1476 +#: src/components/status.jsx:1011 +#: src/components/status.jsx:1477 msgid "Unboosted @{0}'s post" msgstr "Unboosted @{0}'s post" #. placeholder {0}: username || acct -#: src/components/status.jsx:1011 -#: src/components/status.jsx:1477 +#: src/components/status.jsx:1012 +#: src/components/status.jsx:1478 msgid "Boosted @{0}'s post" msgstr "Boosted @{0}'s post" -#: src/components/status.jsx:1023 +#: src/components/status.jsx:1024 msgid "Boost…" msgstr "" -#: src/components/status.jsx:1035 -#: src/components/status.jsx:1770 -#: src/components/status.jsx:2519 +#: src/components/status.jsx:1036 +#: src/components/status.jsx:1771 +#: src/components/status.jsx:2525 msgid "Unlike" msgstr "" -#: src/components/status.jsx:1036 -#: src/components/status.jsx:1770 +#: src/components/status.jsx:1037 #: src/components/status.jsx:1771 -#: src/components/status.jsx:2519 -#: src/components/status.jsx:2520 +#: src/components/status.jsx:1772 +#: src/components/status.jsx:2525 +#: src/components/status.jsx:2526 msgid "Like" msgstr "" -#: src/components/status.jsx:1045 -#: src/components/status.jsx:2531 +#: src/components/status.jsx:1046 +#: src/components/status.jsx:2537 msgid "Unbookmark" msgstr "" -#: src/components/status.jsx:1128 +#: src/components/status.jsx:1129 msgid "Post text copied" msgstr "Post text copied" -#: src/components/status.jsx:1131 +#: src/components/status.jsx:1132 msgid "Unable to copy post text" msgstr "Unable to copy post text" -#: src/components/status.jsx:1137 +#: src/components/status.jsx:1138 msgid "Copy post text" msgstr "Copy post text" #. placeholder {0}: username || acct -#: src/components/status.jsx:1155 +#: src/components/status.jsx:1156 msgid "View post by <0>@{0}" msgstr "" -#: src/components/status.jsx:1176 +#: src/components/status.jsx:1177 msgid "Show Edit History" msgstr "" -#: src/components/status.jsx:1179 +#: src/components/status.jsx:1180 msgid "Edited: {editedDateText}" msgstr "" -#: src/components/status.jsx:1260 +#: src/components/status.jsx:1261 msgid "Conversation unmuted" msgstr "" -#: src/components/status.jsx:1260 +#: src/components/status.jsx:1261 msgid "Conversation muted" msgstr "" -#: src/components/status.jsx:1266 +#: src/components/status.jsx:1267 msgid "Unable to unmute conversation" msgstr "" -#: src/components/status.jsx:1267 +#: src/components/status.jsx:1268 msgid "Unable to mute conversation" msgstr "" -#: src/components/status.jsx:1276 +#: src/components/status.jsx:1277 msgid "Unmute conversation" msgstr "" -#: src/components/status.jsx:1283 +#: src/components/status.jsx:1284 msgid "Mute conversation" msgstr "" -#: src/components/status.jsx:1299 +#: src/components/status.jsx:1300 msgid "Post unpinned from profile" msgstr "" -#: src/components/status.jsx:1300 +#: src/components/status.jsx:1301 msgid "Post pinned to profile" msgstr "" -#: src/components/status.jsx:1305 +#: src/components/status.jsx:1306 msgid "Unable to unpin post" msgstr "" -#: src/components/status.jsx:1305 +#: src/components/status.jsx:1306 msgid "Unable to pin post" msgstr "" -#: src/components/status.jsx:1314 +#: src/components/status.jsx:1315 msgid "Unpin from profile" msgstr "" -#: src/components/status.jsx:1321 +#: src/components/status.jsx:1322 msgid "Pin to profile" msgstr "" -#: src/components/status.jsx:1350 +#: src/components/status.jsx:1351 msgid "Delete this post?" msgstr "" -#: src/components/status.jsx:1366 +#: src/components/status.jsx:1367 msgid "Post deleted" msgstr "" -#: src/components/status.jsx:1369 +#: src/components/status.jsx:1370 msgid "Unable to delete post" msgstr "" -#: src/components/status.jsx:1397 +#: src/components/status.jsx:1398 msgid "Report post…" msgstr "" -#: src/components/status.jsx:1771 -#: src/components/status.jsx:1807 -#: src/components/status.jsx:2520 +#: src/components/status.jsx:1772 +#: src/components/status.jsx:1808 +#: src/components/status.jsx:2526 msgid "Liked" msgstr "" -#: src/components/status.jsx:1804 -#: src/components/status.jsx:2507 +#: src/components/status.jsx:1805 +#: src/components/status.jsx:2513 msgid "Boosted" msgstr "" -#: src/components/status.jsx:1814 -#: src/components/status.jsx:2532 +#: src/components/status.jsx:1815 +#: src/components/status.jsx:2538 msgid "Bookmarked" msgstr "" -#: src/components/status.jsx:1818 +#: src/components/status.jsx:1819 msgid "Pinned" msgstr "" -#: src/components/status.jsx:1870 -#: src/components/status.jsx:2345 +#: src/components/status.jsx:1876 +#: src/components/status.jsx:2351 msgid "Deleted" msgstr "" -#: src/components/status.jsx:1911 +#: src/components/status.jsx:1917 msgid "{repliesCount, plural, one {# reply} other {# replies}}" msgstr "" -#: src/components/status.jsx:2075 -#: src/components/status.jsx:2137 -#: src/components/status.jsx:2241 +#: src/components/status.jsx:2081 +#: src/components/status.jsx:2143 +#: src/components/status.jsx:2247 msgid "Show less" msgstr "" -#: src/components/status.jsx:2075 -#: src/components/status.jsx:2137 +#: src/components/status.jsx:2081 +#: src/components/status.jsx:2143 msgid "Show content" msgstr "" #. placeholder {0}: filterInfo.titlesStr #. placeholder {0}: filterInfo?.titlesStr -#: src/components/status.jsx:2237 +#: src/components/status.jsx:2243 #: src/pages/catchup.jsx:1877 msgid "Filtered: {0}" msgstr "Filtered: {0}" -#: src/components/status.jsx:2241 +#: src/components/status.jsx:2247 msgid "Show media" msgstr "" -#: src/components/status.jsx:2380 +#: src/components/status.jsx:2386 msgid "Edited" msgstr "" -#: src/components/status.jsx:2457 +#: src/components/status.jsx:2463 msgid "Comments" msgstr "" -#: src/components/status.jsx:2642 +#: src/components/status.jsx:2648 msgid "Post hidden by your filters" msgstr "Post hidden by your filters" -#: src/components/status.jsx:2643 +#: src/components/status.jsx:2649 msgid "Post pending" msgstr "Post pending" -#: src/components/status.jsx:2644 -#: src/components/status.jsx:2645 -#: src/components/status.jsx:2646 -#: src/components/status.jsx:2647 +#: src/components/status.jsx:2650 +#: src/components/status.jsx:2651 +#: src/components/status.jsx:2652 +#: src/components/status.jsx:2653 msgid "Post unavailable" msgstr "Post unavailable" -#: src/components/status.jsx:2756 +#: src/components/status.jsx:2763 msgid "Edit History" msgstr "" -#: src/components/status.jsx:2760 +#: src/components/status.jsx:2767 msgid "Failed to load history" msgstr "" -#: src/components/status.jsx:2765 +#: src/components/status.jsx:2772 #: src/pages/annual-report.jsx:45 msgid "Loading…" msgstr "" #. [Name] [Visibility icon] boosted -#: src/components/status.jsx:2897 +#: src/components/status.jsx:2904 msgid "<0/> <1/> boosted" msgstr "<0/> <1/> boosted" diff --git a/src/utils/unfurl-link.js b/src/utils/unfurl-link.js index c4063a02..2567f211 100644 --- a/src/utils/unfurl-link.js +++ b/src/utils/unfurl-link.js @@ -121,6 +121,8 @@ function _unfurlMastodonLink(instance, url) { id, instance, url: selfURL, + originalURL: url, + originalDomain: domain, }; states.unfurledLinks[url] = data; saveStatus(status, instance, {