diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index 4ddb941e..8290ae95 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -380,6 +380,7 @@ function AccountInfo({ const endorsementsContainer = useRef(); const [renderEndorsements, setRenderEndorsements] = useState(false); + const [endorsementsUIState, setEndorsementsUIState] = useState('default'); const [endorsements, setEndorsements] = useState([]); const [relationshipsMap, setRelationshipsMap] = useState({}); useEffect(() => { @@ -387,13 +388,18 @@ function AccountInfo({ if (!showEndorsements) return; if (!renderEndorsements) return; (async () => { + setEndorsementsUIState('loading'); try { const accounts = await masto.v1.accounts.$select(id).endorsements.list({ limit: ENDORSEMENTS_LIMIT, }); console.log({ endorsements: accounts }); - if (!accounts.length) return; + if (!accounts.length) { + setEndorsementsUIState('default'); + return; + } setEndorsements(accounts); + setEndorsementsUIState('default'); setTimeout(() => { endorsementsContainer.current.scrollIntoView({ behavior: 'smooth', @@ -410,6 +416,7 @@ function AccountInfo({ } } catch (e) { console.error(e); + setEndorsementsUIState('error'); } })(); }, [showEndorsements, renderEndorsements, id]); @@ -1037,7 +1044,7 @@ function AccountInfo({ setRenderEndorsements={setRenderEndorsements} /> - {renderEndorsements && endorsements.length > 0 && ( + {renderEndorsements && (
Profiles featured by @{info.username} -
    10 ? 'expanded' : '' - }`} - > - {endorsements.map((account) => ( -
  • - -
  • - ))} -
+ {endorsementsUIState === 'loading' ? ( +

+ +

+ ) : endorsements.length > 0 ? ( +
    10 ? 'expanded' : '' + }`} + > + {endorsements.map((account) => ( +
  • + +
  • + ))} +
+ ) : ( +

+ No featured profiles. +

+ )}
diff --git a/src/locales/en.po b/src/locales/en.po index adff36a4..45a5ff14 100644 --- a/src/locales/en.po +++ b/src/locales/en.po @@ -28,12 +28,12 @@ msgid "Last posted: {0}" msgstr "" #: src/components/account-block.jsx:163 -#: src/components/account-info.jsx:739 +#: src/components/account-info.jsx:746 msgid "Automated" msgstr "" #: src/components/account-block.jsx:170 -#: src/components/account-info.jsx:744 +#: src/components/account-info.jsx:751 #: src/components/status.jsx:588 msgid "Group" msgstr "" @@ -43,17 +43,17 @@ msgid "Mutual" msgstr "" #: src/components/account-block.jsx:184 -#: src/components/account-info.jsx:1923 +#: src/components/account-info.jsx:1940 msgid "Requested" msgstr "" #: src/components/account-block.jsx:188 -#: src/components/account-info.jsx:1914 +#: src/components/account-info.jsx:1931 msgid "Following" msgstr "" #: src/components/account-block.jsx:192 -#: src/components/account-info.jsx:1230 +#: src/components/account-info.jsx:1247 msgid "Follows you" msgstr "" @@ -62,14 +62,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}" msgstr "" #: src/components/account-block.jsx:209 -#: src/components/account-info.jsx:787 +#: src/components/account-info.jsx:794 msgid "Verified" msgstr "" #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) #: src/components/account-block.jsx:224 -#: src/components/account-info.jsx:889 +#: src/components/account-info.jsx:896 msgid "Joined <0>{0}" msgstr "" @@ -77,37 +77,37 @@ msgstr "" msgid "Forever" msgstr "" -#: src/components/account-info.jsx:432 +#: src/components/account-info.jsx:439 msgid "Unable to load account." msgstr "" -#: src/components/account-info.jsx:447 +#: src/components/account-info.jsx:454 msgid "Go to account page" msgstr "" -#: src/components/account-info.jsx:476 -#: src/components/account-info.jsx:809 -#: src/components/account-info.jsx:839 +#: src/components/account-info.jsx:483 +#: src/components/account-info.jsx:816 +#: src/components/account-info.jsx:846 msgid "Followers" msgstr "" #. js-lingui-explicit-id -#: src/components/account-info.jsx:480 -#: src/components/account-info.jsx:849 -#: src/components/account-info.jsx:868 +#: src/components/account-info.jsx:487 +#: src/components/account-info.jsx:856 +#: src/components/account-info.jsx:875 msgid "following.stats" msgstr "Following" -#: src/components/account-info.jsx:483 -#: src/components/account-info.jsx:885 +#: src/components/account-info.jsx:490 +#: src/components/account-info.jsx:892 #: src/pages/account-statuses.jsx:482 #: src/pages/search.jsx:341 #: src/pages/search.jsx:488 msgid "Posts" msgstr "" -#: src/components/account-info.jsx:491 -#: src/components/account-info.jsx:1286 +#: src/components/account-info.jsx:498 +#: src/components/account-info.jsx:1303 #: src/components/compose.jsx:2776 #: src/components/media-alt-modal.jsx:46 #: src/components/media-modal.jsx:359 @@ -127,56 +127,56 @@ msgstr "" msgid "More" msgstr "" -#: src/components/account-info.jsx:503 +#: src/components/account-info.jsx:510 msgid "<0>{displayName} has indicated that their new account is now:" msgstr "" -#: src/components/account-info.jsx:648 -#: src/components/account-info.jsx:1512 +#: src/components/account-info.jsx:655 +#: src/components/account-info.jsx:1529 msgid "Handle copied" msgstr "Handle copied" -#: src/components/account-info.jsx:651 -#: src/components/account-info.jsx:1515 +#: src/components/account-info.jsx:658 +#: src/components/account-info.jsx:1532 msgid "Unable to copy handle" msgstr "Unable to copy handle" -#: src/components/account-info.jsx:657 -#: src/components/account-info.jsx:1521 +#: src/components/account-info.jsx:664 +#: src/components/account-info.jsx:1538 msgid "Copy handle" msgstr "" -#: src/components/account-info.jsx:663 +#: src/components/account-info.jsx:670 msgid "Go to original profile page" msgstr "" -#: src/components/account-info.jsx:681 +#: src/components/account-info.jsx:688 msgid "View profile image" msgstr "" -#: src/components/account-info.jsx:699 +#: src/components/account-info.jsx:706 msgid "View profile header" msgstr "" -#: src/components/account-info.jsx:715 -#: src/components/account-info.jsx:1822 -#: src/components/account-info.jsx:2348 +#: src/components/account-info.jsx:722 +#: src/components/account-info.jsx:1839 +#: src/components/account-info.jsx:2365 msgid "Edit profile" msgstr "" -#: src/components/account-info.jsx:734 +#: src/components/account-info.jsx:741 msgid "In Memoriam" msgstr "" -#: src/components/account-info.jsx:816 -#: src/components/account-info.jsx:859 +#: src/components/account-info.jsx:823 +#: src/components/account-info.jsx:866 msgid "This user has chosen to not make this information available." msgstr "This user has chosen to not make this information available." #. placeholder {0}: ( postingStats.originals / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) #. placeholder {1}: ( postingStats.replies / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) #. placeholder {2}: ( postingStats.boosts / postingStats.total ).toLocaleString(i18n.locale || undefined, { style: 'percent', }) -#: src/components/account-info.jsx:914 +#: src/components/account-info.jsx:921 msgid "{0} original posts, {1} replies, {2} boosts" msgstr "{0} original posts, {1} replies, {2} boosts" @@ -187,22 +187,22 @@ msgstr "{0} original posts, {1} replies, {2} boosts" #. placeholder {4}: postingStats.total #. placeholder {5}: postingStats.total #. placeholder {6}: postingStats.daysSinceLastPost -#: src/components/account-info.jsx:930 +#: src/components/account-info.jsx:937 msgid "{0, plural, one {{1, plural, one {Last 1 post in the past 1 day} other {Last 1 post in the past {2} days}}} other {{3, plural, one {Last {4} posts in the past 1 day} other {Last {5} posts in the past {6} days}}}}" msgstr "" #. placeholder {0}: postingStats.total #. placeholder {1}: postingStats.total -#: src/components/account-info.jsx:946 +#: src/components/account-info.jsx:953 msgid "{0, plural, one {Last 1 post in the past year(s)} other {Last {1} posts in the past year(s)}}" msgstr "" -#: src/components/account-info.jsx:971 +#: src/components/account-info.jsx:978 #: src/pages/catchup.jsx:71 msgid "Original" msgstr "" -#: src/components/account-info.jsx:975 +#: src/components/account-info.jsx:982 #: src/components/status.jsx:2374 #: src/pages/catchup.jsx:72 #: src/pages/catchup.jsx:1449 @@ -212,7 +212,7 @@ msgstr "" msgid "Replies" msgstr "" -#: src/components/account-info.jsx:979 +#: src/components/account-info.jsx:986 #: src/pages/catchup.jsx:73 #: src/pages/catchup.jsx:1451 #: src/pages/catchup.jsx:2076 @@ -220,230 +220,234 @@ msgstr "" msgid "Boosts" msgstr "" -#: src/components/account-info.jsx:985 +#: src/components/account-info.jsx:992 msgid "Post stats unavailable." msgstr "" -#: src/components/account-info.jsx:1016 +#: src/components/account-info.jsx:1023 msgid "View post stats" msgstr "" #. placeholder {0}: info.username -#: src/components/account-info.jsx:1048 +#: src/components/account-info.jsx:1055 msgid "Profiles featured by @{0}" msgstr "Profiles featured by @{0}" +#: src/components/account-info.jsx:1081 +msgid "No featured profiles." +msgstr "No featured profiles." + #. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, }) -#: src/components/account-info.jsx:1234 +#: src/components/account-info.jsx:1251 msgid "Last post: <0>{0}" msgstr "" -#: src/components/account-info.jsx:1248 +#: src/components/account-info.jsx:1265 msgid "Muted" msgstr "" -#: src/components/account-info.jsx:1253 +#: src/components/account-info.jsx:1270 msgid "Blocked" msgstr "" -#: src/components/account-info.jsx:1262 +#: src/components/account-info.jsx:1279 msgid "Private note" msgstr "Private note" -#: src/components/account-info.jsx:1319 +#: src/components/account-info.jsx:1336 msgid "Mention <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1331 +#: src/components/account-info.jsx:1348 msgid "Translate bio" msgstr "" -#: src/components/account-info.jsx:1342 +#: src/components/account-info.jsx:1359 msgid "Edit private note" msgstr "Edit private note" -#: src/components/account-info.jsx:1342 +#: src/components/account-info.jsx:1359 msgid "Add private note" msgstr "Add private note" -#: src/components/account-info.jsx:1362 +#: src/components/account-info.jsx:1379 msgid "Notifications enabled for @{username}'s posts." msgstr "Notifications enabled for @{username}'s posts." -#: src/components/account-info.jsx:1363 +#: src/components/account-info.jsx:1380 msgid " Notifications disabled for @{username}'s posts." msgstr " Notifications disabled for @{username}'s posts." -#: src/components/account-info.jsx:1375 +#: src/components/account-info.jsx:1392 msgid "Disable notifications" msgstr "Disable notifications" -#: src/components/account-info.jsx:1376 +#: src/components/account-info.jsx:1393 msgid "Enable notifications" msgstr "Enable notifications" -#: src/components/account-info.jsx:1393 +#: src/components/account-info.jsx:1410 msgid "Boosts from @{username} enabled." msgstr "Boosts from @{username} enabled." -#: src/components/account-info.jsx:1394 +#: src/components/account-info.jsx:1411 msgid "Boosts from @{username} disabled." msgstr "Boosts from @{username} disabled." -#: src/components/account-info.jsx:1405 +#: src/components/account-info.jsx:1422 msgid "Disable boosts" msgstr "Disable boosts" -#: src/components/account-info.jsx:1405 +#: src/components/account-info.jsx:1422 msgid "Enable boosts" msgstr "Enable boosts" -#: src/components/account-info.jsx:1424 +#: src/components/account-info.jsx:1441 msgid "@{username} is no longer featured on your profile." msgstr "@{username} is no longer featured on your profile." -#: src/components/account-info.jsx:1434 +#: src/components/account-info.jsx:1451 msgid "@{username} is now featured on your profile." msgstr "@{username} is now featured on your profile." -#: src/components/account-info.jsx:1442 +#: src/components/account-info.jsx:1459 msgid "Unable to unfeature @{username} on your profile." msgstr "Unable to unfeature @{username} on your profile." -#: src/components/account-info.jsx:1446 +#: src/components/account-info.jsx:1463 msgid "Unable to feature @{username} on your profile." msgstr "Unable to feature @{username} on your profile." -#: src/components/account-info.jsx:1463 +#: src/components/account-info.jsx:1480 msgid "Show featured profiles" msgstr "Show featured profiles" -#: src/components/account-info.jsx:1478 -#: src/components/account-info.jsx:1488 -#: src/components/account-info.jsx:2094 +#: src/components/account-info.jsx:1495 +#: src/components/account-info.jsx:1505 +#: src/components/account-info.jsx:2111 msgid "Add/Remove from Lists" msgstr "" -#: src/components/account-info.jsx:1538 +#: src/components/account-info.jsx:1555 #: src/components/status.jsx:1255 msgid "Link copied" msgstr "" -#: src/components/account-info.jsx:1541 +#: src/components/account-info.jsx:1558 #: src/components/status.jsx:1258 msgid "Unable to copy link" msgstr "" -#: src/components/account-info.jsx:1547 +#: src/components/account-info.jsx:1564 #: src/components/shortcuts-settings.jsx:1059 #: src/components/status.jsx:1264 #: src/components/status.jsx:3368 msgid "Copy" msgstr "" -#: src/components/account-info.jsx:1562 +#: src/components/account-info.jsx:1579 #: src/components/shortcuts-settings.jsx:1077 #: src/components/status.jsx:1280 msgid "Sharing doesn't seem to work." msgstr "" -#: src/components/account-info.jsx:1568 +#: src/components/account-info.jsx:1585 #: src/components/status.jsx:1286 msgid "Share…" msgstr "" -#: src/components/account-info.jsx:1588 +#: src/components/account-info.jsx:1605 msgid "Unmuted @{username}" msgstr "Unmuted @{username}" -#: src/components/account-info.jsx:1600 +#: src/components/account-info.jsx:1617 msgid "Unmute <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1616 +#: src/components/account-info.jsx:1633 msgid "Mute <0>@{username}…" msgstr "" #. placeholder {0}: typeof MUTE_DURATIONS_LABELS[duration] === 'function' ? MUTE_DURATIONS_LABELS[duration]() : _(MUTE_DURATIONS_LABELS[duration]) -#: src/components/account-info.jsx:1648 +#: src/components/account-info.jsx:1665 msgid "Muted @{username} for {0}" msgstr "Muted @{username} for {0}" -#: src/components/account-info.jsx:1660 +#: src/components/account-info.jsx:1677 msgid "Unable to mute @{username}" msgstr "Unable to mute @{username}" -#: src/components/account-info.jsx:1681 +#: src/components/account-info.jsx:1698 msgid "Remove <0>@{username} from followers?" msgstr "" -#: src/components/account-info.jsx:1701 +#: src/components/account-info.jsx:1718 msgid "@{username} removed from followers" msgstr "@{username} removed from followers" -#: src/components/account-info.jsx:1713 +#: src/components/account-info.jsx:1730 msgid "Remove follower…" msgstr "" -#: src/components/account-info.jsx:1724 +#: src/components/account-info.jsx:1741 msgid "Block <0>@{username}?" msgstr "" -#: src/components/account-info.jsx:1748 +#: src/components/account-info.jsx:1765 msgid "Unblocked @{username}" msgstr "Unblocked @{username}" -#: src/components/account-info.jsx:1756 +#: src/components/account-info.jsx:1773 msgid "Blocked @{username}" msgstr "Blocked @{username}" -#: src/components/account-info.jsx:1764 +#: src/components/account-info.jsx:1781 msgid "Unable to unblock @{username}" msgstr "Unable to unblock @{username}" -#: src/components/account-info.jsx:1766 +#: src/components/account-info.jsx:1783 msgid "Unable to block @{username}" msgstr "Unable to block @{username}" -#: src/components/account-info.jsx:1776 +#: src/components/account-info.jsx:1793 msgid "Unblock <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1785 +#: src/components/account-info.jsx:1802 msgid "Block <0>@{username}…" msgstr "" -#: src/components/account-info.jsx:1802 +#: src/components/account-info.jsx:1819 msgid "Report <0>@{username}…" msgstr "" -#: src/components/account-info.jsx:1858 +#: src/components/account-info.jsx:1875 msgid "Withdraw follow request?" msgstr "Withdraw follow request?" #. placeholder {0}: info.acct || info.username -#: src/components/account-info.jsx:1859 +#: src/components/account-info.jsx:1876 msgid "Unfollow @{0}?" msgstr "Unfollow @{0}?" -#: src/components/account-info.jsx:1917 +#: src/components/account-info.jsx:1934 msgid "Unfollow…" msgstr "" -#: src/components/account-info.jsx:1926 +#: src/components/account-info.jsx:1943 msgid "Withdraw…" msgstr "" -#: src/components/account-info.jsx:1933 -#: src/components/account-info.jsx:1937 +#: src/components/account-info.jsx:1950 +#: src/components/account-info.jsx:1954 #: src/pages/hashtag.jsx:264 msgid "Follow" msgstr "" -#: src/components/account-info.jsx:2034 -#: src/components/account-info.jsx:2089 -#: src/components/account-info.jsx:2223 -#: src/components/account-info.jsx:2343 +#: src/components/account-info.jsx:2051 +#: src/components/account-info.jsx:2106 +#: src/components/account-info.jsx:2240 +#: src/components/account-info.jsx:2360 #: src/components/account-sheet.jsx:38 #: src/components/compose.jsx:884 #: src/components/compose.jsx:2732 @@ -476,85 +480,85 @@ msgstr "" msgid "Close" msgstr "" -#: src/components/account-info.jsx:2039 +#: src/components/account-info.jsx:2056 msgid "Translated Bio" msgstr "" -#: src/components/account-info.jsx:2134 +#: src/components/account-info.jsx:2151 msgid "Unable to remove from list." msgstr "Unable to remove from list." -#: src/components/account-info.jsx:2135 +#: src/components/account-info.jsx:2152 msgid "Unable to add to list." msgstr "Unable to add to list." -#: src/components/account-info.jsx:2154 +#: src/components/account-info.jsx:2171 #: src/pages/lists.jsx:105 msgid "Unable to load lists." msgstr "" -#: src/components/account-info.jsx:2158 +#: src/components/account-info.jsx:2175 msgid "No lists." msgstr "" -#: src/components/account-info.jsx:2169 +#: src/components/account-info.jsx:2186 #: src/components/list-add-edit.jsx:40 #: src/pages/lists.jsx:59 msgid "New list" msgstr "" #. placeholder {0}: account?.username || account?.acct -#: src/components/account-info.jsx:2228 +#: src/components/account-info.jsx:2245 msgid "Private note about <0>@{0}" msgstr "" -#: src/components/account-info.jsx:2258 +#: src/components/account-info.jsx:2275 msgid "Unable to update private note." msgstr "Unable to update private note." -#: src/components/account-info.jsx:2281 -#: src/components/account-info.jsx:2579 +#: src/components/account-info.jsx:2298 +#: src/components/account-info.jsx:2596 msgid "Cancel" msgstr "" -#: src/components/account-info.jsx:2286 +#: src/components/account-info.jsx:2303 msgid "Save & close" msgstr "" -#: src/components/account-info.jsx:2403 +#: src/components/account-info.jsx:2420 msgid "Unable to update profile." msgstr "Unable to update profile." -#: src/components/account-info.jsx:2410 +#: src/components/account-info.jsx:2427 msgid "Header picture" msgstr "Header picture" -#: src/components/account-info.jsx:2462 +#: src/components/account-info.jsx:2479 msgid "Profile picture" msgstr "Profile picture" -#: src/components/account-info.jsx:2514 +#: src/components/account-info.jsx:2531 #: src/components/list-add-edit.jsx:105 msgid "Name" msgstr "" -#: src/components/account-info.jsx:2527 +#: src/components/account-info.jsx:2544 msgid "Bio" msgstr "" -#: src/components/account-info.jsx:2540 +#: src/components/account-info.jsx:2557 msgid "Extra fields" msgstr "" -#: src/components/account-info.jsx:2546 +#: src/components/account-info.jsx:2563 msgid "Label" msgstr "" -#: src/components/account-info.jsx:2549 +#: src/components/account-info.jsx:2566 msgid "Content" msgstr "" -#: src/components/account-info.jsx:2582 +#: src/components/account-info.jsx:2599 #: src/components/list-add-edit.jsx:150 #: src/components/shortcuts-settings.jsx:715 #: src/pages/filters.jsx:570 @@ -562,11 +566,11 @@ msgstr "" msgid "Save" msgstr "" -#: src/components/account-info.jsx:2636 +#: src/components/account-info.jsx:2653 msgid "username" msgstr "" -#: src/components/account-info.jsx:2640 +#: src/components/account-info.jsx:2657 msgid "server domain name" msgstr ""