From e768965dba8062b2586a41a0a84fcb051c3ae02a Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Wed, 20 Aug 2025 17:01:45 +0800 Subject: [PATCH] Prevent long blocking task and checkDifferentLanguage running twice --- src/components/status.jsx | 6 +- src/locales/en.po | 266 +++++++++++++++++++------------------- 2 files changed, 135 insertions(+), 137 deletions(-) diff --git a/src/components/status.jsx b/src/components/status.jsx index 55dec4ee..2d2d2c45 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -1083,9 +1083,7 @@ function Status({ const contentTranslationHideLanguages = snapStates.settings.contentTranslationHideLanguages || []; const [differentLanguage, setDifferentLanguage] = useState( - () => - DIFFERENT_LANG_CHECK[language + contentTranslationHideLanguages] || - checkDifferentLanguage(language, contentTranslationHideLanguages), + DIFFERENT_LANG_CHECK[language + contentTranslationHideLanguages], ); useEffect(() => { if (!language || differentLanguage) { @@ -1106,7 +1104,7 @@ function Status({ if (different) setDifferentLanguage(different); }, 1); return () => clearTimeout(timeout); - }, [language, differentLanguage, contentTranslationHideLanguages]); + }, [language, differentLanguage]); const reblogIterator = useRef(); const favouriteIterator = useRef(); diff --git a/src/locales/en.po b/src/locales/en.po index 92abad84..312ea997 100644 --- a/src/locales/en.po +++ b/src/locales/en.po @@ -108,11 +108,11 @@ msgstr "" #: src/components/compose.jsx:2819 #: src/components/media-alt-modal.jsx:55 #: src/components/media-modal.jsx:363 -#: src/components/status.jsx:1998 -#: src/components/status.jsx:2015 -#: src/components/status.jsx:2140 -#: src/components/status.jsx:2769 -#: src/components/status.jsx:2772 +#: src/components/status.jsx:1996 +#: src/components/status.jsx:2013 +#: src/components/status.jsx:2138 +#: src/components/status.jsx:2767 +#: src/components/status.jsx:2770 #: src/pages/account-statuses.jsx:539 #: src/pages/accounts.jsx:118 #: src/pages/hashtag.jsx:203 @@ -217,7 +217,7 @@ msgid "Original" msgstr "" #: src/components/account-info.jsx:978 -#: src/components/status.jsx:2553 +#: src/components/status.jsx:2551 #: src/pages/catchup.jsx:71 #: src/pages/catchup.jsx:1448 #: src/pages/catchup.jsx:2061 @@ -343,30 +343,30 @@ msgid "Add/Remove from Lists" msgstr "" #: src/components/account-info.jsx:1522 -#: src/components/status.jsx:1420 +#: src/components/status.jsx:1418 msgid "Link copied" msgstr "" #: src/components/account-info.jsx:1525 -#: src/components/status.jsx:1423 +#: src/components/status.jsx:1421 msgid "Unable to copy link" msgstr "" #: src/components/account-info.jsx:1531 #: src/components/shortcuts-settings.jsx:1059 -#: src/components/status.jsx:1429 -#: src/components/status.jsx:3547 +#: src/components/status.jsx:1427 +#: src/components/status.jsx:3545 msgid "Copy" msgstr "" #: src/components/account-info.jsx:1546 #: src/components/shortcuts-settings.jsx:1077 -#: src/components/status.jsx:1445 +#: src/components/status.jsx:1443 msgid "Sharing doesn't seem to work." msgstr "" #: src/components/account-info.jsx:1552 -#: src/components/status.jsx:1451 +#: src/components/status.jsx:1449 msgid "Share…" msgstr "" @@ -480,9 +480,9 @@ msgstr "" #: src/components/shortcuts-settings.jsx:230 #: src/components/shortcuts-settings.jsx:583 #: src/components/shortcuts-settings.jsx:783 -#: src/components/status.jsx:3271 -#: src/components/status.jsx:3511 -#: src/components/status.jsx:4020 +#: src/components/status.jsx:3269 +#: src/components/status.jsx:3509 +#: src/components/status.jsx:4018 #: src/pages/accounts.jsx:45 #: src/pages/catchup.jsx:1584 #: src/pages/filters.jsx:225 @@ -732,7 +732,7 @@ msgid "Attachment #{i} failed" msgstr "Attachment #{i} failed" #: src/components/compose.jsx:1222 -#: src/components/status.jsx:2328 +#: src/components/status.jsx:2326 #: src/components/timeline.jsx:1023 msgid "Content warning" msgstr "" @@ -768,7 +768,7 @@ msgstr "" #: src/components/compose.jsx:1289 #: src/components/status.jsx:103 -#: src/components/status.jsx:2204 +#: src/components/status.jsx:2202 msgid "Private mention" msgstr "" @@ -805,10 +805,10 @@ msgstr "Schedule" #: src/components/compose.jsx:1678 #: src/components/keyboard-shortcuts-help.jsx:155 -#: src/components/status.jsx:1192 -#: src/components/status.jsx:1978 -#: src/components/status.jsx:1979 -#: src/components/status.jsx:2673 +#: src/components/status.jsx:1190 +#: src/components/status.jsx:1976 +#: src/components/status.jsx:1977 +#: src/components/status.jsx:2671 msgid "Reply" msgstr "" @@ -1030,7 +1030,7 @@ msgstr "" #: src/components/drafts.jsx:128 #: src/components/list-add-edit.jsx:188 -#: src/components/status.jsx:1595 +#: src/components/status.jsx:1593 #: src/pages/filters.jsx:603 #: src/pages/scheduled-posts.jsx:369 msgid "Delete…" @@ -1239,10 +1239,10 @@ msgid "<0>l or <1>f" msgstr "" #: src/components/keyboard-shortcuts-help.jsx:176 -#: src/components/status.jsx:1200 -#: src/components/status.jsx:2700 -#: src/components/status.jsx:2723 -#: src/components/status.jsx:2724 +#: src/components/status.jsx:1198 +#: src/components/status.jsx:2698 +#: src/components/status.jsx:2721 +#: src/components/status.jsx:2722 msgid "Boost" msgstr "" @@ -1251,9 +1251,9 @@ msgid "<0>Shift + <1>b" msgstr "" #: src/components/keyboard-shortcuts-help.jsx:184 -#: src/components/status.jsx:1263 -#: src/components/status.jsx:2748 -#: src/components/status.jsx:2749 +#: src/components/status.jsx:1261 +#: src/components/status.jsx:2746 +#: src/components/status.jsx:2747 msgid "Bookmark" msgstr "" @@ -1318,14 +1318,14 @@ msgid "Media description" msgstr "" #: src/components/media-alt-modal.jsx:67 -#: src/components/status.jsx:1306 -#: src/components/status.jsx:1315 +#: src/components/status.jsx:1304 +#: src/components/status.jsx:1313 #: src/components/translation-block.jsx:239 msgid "Translate" msgstr "" #: src/components/media-alt-modal.jsx:78 -#: src/components/status.jsx:1334 +#: src/components/status.jsx:1332 msgid "Speak" msgstr "" @@ -1362,9 +1362,9 @@ msgid "Filtered: {filterTitleStr}" msgstr "" #: src/components/media-post.jsx:133 -#: src/components/status.jsx:3850 -#: src/components/status.jsx:3946 -#: src/components/status.jsx:4024 +#: src/components/status.jsx:3848 +#: src/components/status.jsx:3944 +#: src/components/status.jsx:4022 #: src/components/timeline.jsx:1012 #: src/pages/catchup.jsx:75 #: src/pages/catchup.jsx:1880 @@ -1676,8 +1676,8 @@ msgid "[Unknown notification type: {type}]" msgstr "" #: src/components/notification.jsx:451 -#: src/components/status.jsx:1277 -#: src/components/status.jsx:1287 +#: src/components/status.jsx:1275 +#: src/components/status.jsx:1285 msgid "Boosted/Liked by…" msgstr "" @@ -1786,19 +1786,19 @@ msgstr "" #. Relative time in seconds, as short as possible #. placeholder {0}: seconds < 1 ? 1 : Math.floor(seconds) -#: src/components/relative-time.jsx:61 +#: src/components/relative-time.jsx:47 msgid "{0}s" msgstr "" #. Relative time in minutes, as short as possible #. placeholder {0}: Math.floor(seconds / minute) -#: src/components/relative-time.jsx:66 +#: src/components/relative-time.jsx:52 msgid "{0}m" msgstr "" #. Relative time in hours, as short as possible #. placeholder {0}: Math.floor(seconds / hour) -#: src/components/relative-time.jsx:71 +#: src/components/relative-time.jsx:57 msgid "{0}h" msgstr "" @@ -2030,7 +2030,7 @@ msgid "Move down" msgstr "" #: src/components/shortcuts-settings.jsx:379 -#: src/components/status.jsx:1557 +#: src/components/status.jsx:1555 #: src/pages/list.jsx:195 msgid "Edit" msgstr "" @@ -2275,312 +2275,312 @@ msgstr "Unbookmarked @{0}'s post" msgid "Bookmarked @{0}'s post" msgstr "Bookmarked @{0}'s post" -#: src/components/status.jsx:1169 +#: src/components/status.jsx:1167 msgid "Some media have no descriptions." msgstr "" #. placeholder {0}: rtf.format(-statusMonthsAgo, 'month') -#: src/components/status.jsx:1176 +#: src/components/status.jsx:1174 msgid "Old post (<0>{0})" msgstr "" -#: src/components/status.jsx:1200 -#: src/components/status.jsx:1240 -#: src/components/status.jsx:2700 -#: src/components/status.jsx:2723 +#: src/components/status.jsx:1198 +#: src/components/status.jsx:1238 +#: src/components/status.jsx:2698 +#: src/components/status.jsx:2721 msgid "Unboost" msgstr "" -#: src/components/status.jsx:1216 -#: src/components/status.jsx:2715 +#: src/components/status.jsx:1214 +#: src/components/status.jsx:2713 msgid "Quote" msgstr "" #. placeholder {0}: username || acct -#: src/components/status.jsx:1228 -#: src/components/status.jsx:1694 +#: src/components/status.jsx:1226 +#: src/components/status.jsx:1692 msgid "Unboosted @{0}'s post" msgstr "Unboosted @{0}'s post" #. placeholder {0}: username || acct -#: src/components/status.jsx:1229 -#: src/components/status.jsx:1695 +#: src/components/status.jsx:1227 +#: src/components/status.jsx:1693 msgid "Boosted @{0}'s post" msgstr "Boosted @{0}'s post" -#: src/components/status.jsx:1241 +#: src/components/status.jsx:1239 msgid "Boost…" msgstr "" -#: src/components/status.jsx:1253 -#: src/components/status.jsx:1988 -#: src/components/status.jsx:2736 +#: src/components/status.jsx:1251 +#: src/components/status.jsx:1986 +#: src/components/status.jsx:2734 msgid "Unlike" msgstr "" -#: src/components/status.jsx:1254 -#: src/components/status.jsx:1988 -#: src/components/status.jsx:1989 -#: src/components/status.jsx:2736 -#: src/components/status.jsx:2737 +#: src/components/status.jsx:1252 +#: src/components/status.jsx:1986 +#: src/components/status.jsx:1987 +#: src/components/status.jsx:2734 +#: src/components/status.jsx:2735 msgid "Like" msgstr "" -#: src/components/status.jsx:1263 -#: src/components/status.jsx:2748 +#: src/components/status.jsx:1261 +#: src/components/status.jsx:2746 msgid "Unbookmark" msgstr "" -#: src/components/status.jsx:1346 +#: src/components/status.jsx:1344 msgid "Post text copied" msgstr "Post text copied" -#: src/components/status.jsx:1349 +#: src/components/status.jsx:1347 msgid "Unable to copy post text" msgstr "Unable to copy post text" -#: src/components/status.jsx:1355 +#: src/components/status.jsx:1353 msgid "Copy post text" msgstr "Copy post text" #. placeholder {0}: username || acct -#: src/components/status.jsx:1373 +#: src/components/status.jsx:1371 msgid "View post by <0>@{0}" msgstr "" -#: src/components/status.jsx:1394 +#: src/components/status.jsx:1392 msgid "Show Edit History" msgstr "" -#: src/components/status.jsx:1397 +#: src/components/status.jsx:1395 msgid "Edited: {editedDateText}" msgstr "" -#: src/components/status.jsx:1464 -#: src/components/status.jsx:3516 +#: src/components/status.jsx:1462 +#: src/components/status.jsx:3514 msgid "Embed post" msgstr "" -#: src/components/status.jsx:1478 +#: src/components/status.jsx:1476 msgid "Conversation unmuted" msgstr "" -#: src/components/status.jsx:1478 +#: src/components/status.jsx:1476 msgid "Conversation muted" msgstr "" -#: src/components/status.jsx:1484 +#: src/components/status.jsx:1482 msgid "Unable to unmute conversation" msgstr "" -#: src/components/status.jsx:1485 +#: src/components/status.jsx:1483 msgid "Unable to mute conversation" msgstr "" -#: src/components/status.jsx:1494 +#: src/components/status.jsx:1492 msgid "Unmute conversation" msgstr "" -#: src/components/status.jsx:1501 +#: src/components/status.jsx:1499 msgid "Mute conversation" msgstr "" -#: src/components/status.jsx:1517 +#: src/components/status.jsx:1515 msgid "Post unpinned from profile" msgstr "" -#: src/components/status.jsx:1518 +#: src/components/status.jsx:1516 msgid "Post pinned to profile" msgstr "" -#: src/components/status.jsx:1523 +#: src/components/status.jsx:1521 msgid "Unable to unpin post" msgstr "" -#: src/components/status.jsx:1523 +#: src/components/status.jsx:1521 msgid "Unable to pin post" msgstr "" -#: src/components/status.jsx:1532 +#: src/components/status.jsx:1530 msgid "Unpin from profile" msgstr "" -#: src/components/status.jsx:1539 +#: src/components/status.jsx:1537 msgid "Pin to profile" msgstr "" -#: src/components/status.jsx:1568 +#: src/components/status.jsx:1566 msgid "Delete this post?" msgstr "" -#: src/components/status.jsx:1584 +#: src/components/status.jsx:1582 msgid "Post deleted" msgstr "" -#: src/components/status.jsx:1587 +#: src/components/status.jsx:1585 msgid "Unable to delete post" msgstr "" -#: src/components/status.jsx:1615 +#: src/components/status.jsx:1613 msgid "Report post…" msgstr "" -#: src/components/status.jsx:1989 -#: src/components/status.jsx:2025 -#: src/components/status.jsx:2737 +#: src/components/status.jsx:1987 +#: src/components/status.jsx:2023 +#: src/components/status.jsx:2735 msgid "Liked" msgstr "" -#: src/components/status.jsx:2022 -#: src/components/status.jsx:2724 +#: src/components/status.jsx:2020 +#: src/components/status.jsx:2722 msgid "Boosted" msgstr "" -#: src/components/status.jsx:2032 -#: src/components/status.jsx:2749 +#: src/components/status.jsx:2030 +#: src/components/status.jsx:2747 msgid "Bookmarked" msgstr "" -#: src/components/status.jsx:2036 +#: src/components/status.jsx:2034 msgid "Pinned" msgstr "" -#: src/components/status.jsx:2082 -#: src/components/status.jsx:2561 +#: src/components/status.jsx:2080 +#: src/components/status.jsx:2559 msgid "Deleted" msgstr "" -#: src/components/status.jsx:2123 +#: src/components/status.jsx:2121 msgid "{repliesCount, plural, one {# reply} other {# replies}}" msgstr "" #. placeholder {0}: snapStates.statusThreadNumber[sKey] ? ` ${snapStates.statusThreadNumber[sKey]}/X` : '' -#: src/components/status.jsx:2213 +#: src/components/status.jsx:2211 msgid "Thread{0}" msgstr "" -#: src/components/status.jsx:2291 -#: src/components/status.jsx:2353 -#: src/components/status.jsx:2457 +#: src/components/status.jsx:2289 +#: src/components/status.jsx:2351 +#: src/components/status.jsx:2455 msgid "Show less" msgstr "" -#: src/components/status.jsx:2291 -#: src/components/status.jsx:2353 +#: src/components/status.jsx:2289 +#: src/components/status.jsx:2351 msgid "Show content" msgstr "" #. placeholder {0}: filterInfo.titlesStr #. placeholder {0}: filterInfo?.titlesStr -#: src/components/status.jsx:2453 +#: src/components/status.jsx:2451 #: src/pages/catchup.jsx:1879 msgid "Filtered: {0}" msgstr "Filtered: {0}" -#: src/components/status.jsx:2457 +#: src/components/status.jsx:2455 msgid "Show media" msgstr "" -#: src/components/status.jsx:2597 +#: src/components/status.jsx:2595 msgid "Edited" msgstr "" -#: src/components/status.jsx:2674 +#: src/components/status.jsx:2672 msgid "Comments" msgstr "" #. More from [Author] -#: src/components/status.jsx:2974 +#: src/components/status.jsx:2972 msgid "More from <0/>" msgstr "More from <0/>" -#: src/components/status.jsx:3276 +#: src/components/status.jsx:3274 msgid "Edit History" msgstr "" -#: src/components/status.jsx:3280 +#: src/components/status.jsx:3278 msgid "Failed to load history" msgstr "" -#: src/components/status.jsx:3285 +#: src/components/status.jsx:3283 #: src/pages/annual-report.jsx:45 msgid "Loading…" msgstr "" -#: src/components/status.jsx:3521 +#: src/components/status.jsx:3519 msgid "HTML Code" msgstr "" -#: src/components/status.jsx:3538 +#: src/components/status.jsx:3536 msgid "HTML code copied" msgstr "" -#: src/components/status.jsx:3541 +#: src/components/status.jsx:3539 msgid "Unable to copy HTML code" msgstr "" -#: src/components/status.jsx:3553 +#: src/components/status.jsx:3551 msgid "Media attachments:" msgstr "" -#: src/components/status.jsx:3575 +#: src/components/status.jsx:3573 msgid "Account Emojis:" msgstr "" -#: src/components/status.jsx:3606 -#: src/components/status.jsx:3651 +#: src/components/status.jsx:3604 +#: src/components/status.jsx:3649 msgid "static URL" msgstr "" -#: src/components/status.jsx:3620 +#: src/components/status.jsx:3618 msgid "Emojis:" msgstr "" -#: src/components/status.jsx:3665 +#: src/components/status.jsx:3663 msgid "Notes:" msgstr "" -#: src/components/status.jsx:3669 +#: src/components/status.jsx:3667 msgid "This is static, unstyled and scriptless. You may need to apply your own styles and edit as needed." msgstr "" -#: src/components/status.jsx:3675 +#: src/components/status.jsx:3673 msgid "Polls are not interactive, becomes a list with vote counts." msgstr "" -#: src/components/status.jsx:3680 +#: src/components/status.jsx:3678 msgid "Media attachments can be images, videos, audios or any file types." msgstr "" -#: src/components/status.jsx:3686 +#: src/components/status.jsx:3684 msgid "Post could be edited or deleted later." msgstr "" -#: src/components/status.jsx:3692 +#: src/components/status.jsx:3690 msgid "Preview" msgstr "" -#: src/components/status.jsx:3701 +#: src/components/status.jsx:3699 msgid "Note: This preview is lightly styled." msgstr "" #. [Name] [Visibility icon] boosted -#: src/components/status.jsx:3954 +#: src/components/status.jsx:3952 msgid "<0/> <1/> boosted" msgstr "<0/> <1/> boosted" -#: src/components/status.jsx:4056 +#: src/components/status.jsx:4054 msgid "Post hidden by your filters" msgstr "Post hidden by your filters" -#: src/components/status.jsx:4057 +#: src/components/status.jsx:4055 msgid "Post pending" msgstr "Post pending" +#: src/components/status.jsx:4056 +#: src/components/status.jsx:4057 #: src/components/status.jsx:4058 #: src/components/status.jsx:4059 -#: src/components/status.jsx:4060 -#: src/components/status.jsx:4061 msgid "Post unavailable" msgstr "Post unavailable"