diff --git a/src/components/account-info.jsx b/src/components/account-info.jsx index f4c44455..a7c66098 100644 --- a/src/components/account-info.jsx +++ b/src/components/account-info.jsx @@ -135,7 +135,7 @@ function AccountInfo({ authenticated, }) { const { i18n, t } = useLingui(); - const { masto } = api({ + const { masto, authenticated: currentAuthenticated } = api({ instance, }); const { masto: currentMasto, instance: currentInstance } = api(); @@ -363,601 +363,648 @@ function AccountInfo({ const isStringURL = isString && account && /^https?:\/\//.test(account); + const [showEditProfile, setShowEditProfile] = useState(false); + return ( -
- {uiState === 'error' && ( -
-

- Unable to load account. -

- {isString ? ( + <> +
+ {uiState === 'error' && ( +

- {isStringURL ? ( - - {account} + Unable to load account. +

+ {isString ? ( +

+ {isStringURL ? ( + + {account} + + ) : ( + {account} + )} +

+ ) : ( +

+ + Go to account page - ) : ( - {account} - )} -

- ) : ( -

- - Go to account page - -

- )} -
- )} - {uiState === 'loading' ? ( - <> -
- -
-
-
-

███████ ████ ████

-

████ ████████ ██████ █████████ ████ ██

-
- -
- - - - -
-
- - ) : ( - info && ( - <> - {!!moved && ( - +

)} - {!!header && !/missing\.png$/.test(header) && ( - { - if (e.target.crossOrigin) { - if (e.target.src !== headerStatic) { +
+ )} + {uiState === 'loading' ? ( + <> +
+ +
+
+
+

███████ ████ ████

+

████ ████████ ██████ █████████ ████ ██

+
+ +
+ + + + +
+
+ + ) : ( + info && ( + <> + {!!moved && ( + + )} + {!!header && !/missing\.png$/.test(header) && ( + { + if (e.target.crossOrigin) { + if (e.target.src !== headerStatic) { + e.target.src = headerStatic; + } else { + e.target.removeAttribute('crossorigin'); + e.target.src = header; + } + } else if (e.target.src !== headerStatic) { e.target.src = headerStatic; } else { - e.target.removeAttribute('crossorigin'); - e.target.src = header; + e.target.remove(); } - } else if (e.target.src !== headerStatic) { - e.target.src = headerStatic; - } else { - e.target.remove(); - } - }} - crossOrigin="anonymous" - onLoad={(e) => { - e.target.classList.add('loaded'); - try { - // Get color from four corners of image - const canvas = window.OffscreenCanvas - ? new OffscreenCanvas(1, 1) - : document.createElement('canvas'); - const ctx = canvas.getContext('2d', { - willReadFrequently: true, - }); - canvas.width = e.target.width; - canvas.height = e.target.height; - ctx.imageSmoothingEnabled = false; - ctx.drawImage(e.target, 0, 0); - // const colors = [ - // ctx.getImageData(0, 0, 1, 1).data, - // ctx.getImageData(e.target.width - 1, 0, 1, 1).data, - // ctx.getImageData(0, e.target.height - 1, 1, 1).data, - // ctx.getImageData( - // e.target.width - 1, - // e.target.height - 1, - // 1, - // 1, - // ).data, - // ]; - // Get 10x10 pixels from corners, get average color from each - const pixelDimension = 10; - const colors = [ - ctx.getImageData(0, 0, pixelDimension, pixelDimension) - .data, - ctx.getImageData( - e.target.width - pixelDimension, - 0, - pixelDimension, - pixelDimension, - ).data, - ctx.getImageData( - 0, - e.target.height - pixelDimension, - pixelDimension, - pixelDimension, - ).data, - ctx.getImageData( - e.target.width - pixelDimension, - e.target.height - pixelDimension, - pixelDimension, - pixelDimension, - ).data, - ].map((data) => { - let r = 0; - let g = 0; - let b = 0; - let a = 0; - for (let i = 0; i < data.length; i += 4) { - r += data[i]; - g += data[i + 1]; - b += data[i + 2]; - a += data[i + 3]; - } - const dataLength = data.length / 4; - return [ - r / dataLength, - g / dataLength, - b / dataLength, - a / dataLength, - ]; - }); - const rgbColors = colors.map((color) => { - const [r, g, b, a] = lightenRGB(color); - return `rgba(${r}, ${g}, ${b}, ${a})`; - }); - setHeaderCornerColors(rgbColors); - console.log({ colors, rgbColors }); - } catch (e) { - // Silently fail - } - }} - /> - )} -
- {standalone ? ( - - {}} - /> -
- } - > -
- -
- { - const handleWithInstance = acct.includes('@') - ? `@${acct}` - : `@${acct}@${instance}`; - try { - navigator.clipboard.writeText(handleWithInstance); - showToast(t`Handle copied`); - } catch (e) { - console.error(e); - showToast(t`Unable to copy handle`); - } - }} - > - - - Copy handle - - - - - - Go to original profile page - - - - { - states.showMediaModal = { - mediaAttachments: [ - { - type: 'image', - url: avatarStatic, - }, - ], - }; - }} - > - - - View profile image - - - { - states.showMediaModal = { - mediaAttachments: [ - { - type: 'image', - url: headerStatic, - }, - ], - }; - }} - > - - - View profile header - - - - ) : ( - { + e.target.classList.add('loaded'); + try { + // Get color from four corners of image + const canvas = window.OffscreenCanvas + ? new OffscreenCanvas(1, 1) + : document.createElement('canvas'); + const ctx = canvas.getContext('2d', { + willReadFrequently: true, + }); + canvas.width = e.target.width; + canvas.height = e.target.height; + ctx.imageSmoothingEnabled = false; + ctx.drawImage(e.target, 0, 0); + // const colors = [ + // ctx.getImageData(0, 0, 1, 1).data, + // ctx.getImageData(e.target.width - 1, 0, 1, 1).data, + // ctx.getImageData(0, e.target.height - 1, 1, 1).data, + // ctx.getImageData( + // e.target.width - 1, + // e.target.height - 1, + // 1, + // 1, + // ).data, + // ]; + // Get 10x10 pixels from corners, get average color from each + const pixelDimension = 10; + const colors = [ + ctx.getImageData(0, 0, pixelDimension, pixelDimension) + .data, + ctx.getImageData( + e.target.width - pixelDimension, + 0, + pixelDimension, + pixelDimension, + ).data, + ctx.getImageData( + 0, + e.target.height - pixelDimension, + pixelDimension, + pixelDimension, + ).data, + ctx.getImageData( + e.target.width - pixelDimension, + e.target.height - pixelDimension, + pixelDimension, + pixelDimension, + ).data, + ].map((data) => { + let r = 0; + let g = 0; + let b = 0; + let a = 0; + for (let i = 0; i < data.length; i += 4) { + r += data[i]; + g += data[i + 1]; + b += data[i + 2]; + a += data[i + 3]; + } + const dataLength = data.length / 4; + return [ + r / dataLength, + g / dataLength, + b / dataLength, + a / dataLength, + ]; + }); + const rgbColors = colors.map((color) => { + const [r, g, b, a] = lightenRGB(color); + return `rgba(${r}, ${g}, ${b}, ${a})`; + }); + setHeaderCornerColors(rgbColors); + console.log({ colors, rgbColors }); + } catch (e) { + // Silently fail + } + }} /> )} - - + {!!showEditProfile && ( + { + setShowEditProfile(false); + }} + > + { + setShowEditProfile(false); + if (state === 'success' && account) { + onProfileUpdate(account); + } + }} + /> + )} -
+ ); } @@ -970,6 +1017,7 @@ function RelatedActions({ authenticated, onRelationshipChange = () => {}, onProfileUpdate = () => {}, + setShowEditProfile = () => {}, }) { if (!info) return null; const { _, t } = useLingui(); @@ -1083,7 +1131,6 @@ function RelatedActions({ const [showTranslatedBio, setShowTranslatedBio] = useState(false); const [showAddRemoveLists, setShowAddRemoveLists] = useState(false); const [showPrivateNoteModal, setShowPrivateNoteModal] = useState(false); - const [showEditProfile, setShowEditProfile] = useState(false); const [lists, setLists] = useState([]); return ( @@ -1773,22 +1820,6 @@ function RelatedActions({ /> )} - {!!showEditProfile && ( - { - setShowEditProfile(false); - }} - > - { - setShowEditProfile(false); - if (state === 'success' && account) { - onProfileUpdate(account); - } - }} - /> - - )} ); } diff --git a/src/locales/en.po b/src/locales/en.po index e1083306..e6152703 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:162 -#: src/components/account-info.jsx:667 +#: src/components/account-info.jsx:688 msgid "Automated" msgstr "" #: src/components/account-block.jsx:169 -#: src/components/account-info.jsx:672 +#: src/components/account-info.jsx:693 #: src/components/status.jsx:547 msgid "Group" msgstr "" @@ -43,17 +43,17 @@ msgid "Mutual" msgstr "" #: src/components/account-block.jsx:183 -#: src/components/account-info.jsx:1713 +#: src/components/account-info.jsx:1760 msgid "Requested" msgstr "" #: src/components/account-block.jsx:187 -#: src/components/account-info.jsx:1704 +#: src/components/account-info.jsx:1751 msgid "Following" msgstr "" #: src/components/account-block.jsx:191 -#: src/components/account-info.jsx:1095 +#: src/components/account-info.jsx:1142 msgid "Follows you" msgstr "" @@ -62,14 +62,14 @@ msgid "{followersCount, plural, one {# follower} other {# followers}}" msgstr "" #: src/components/account-block.jsx:208 -#: src/components/account-info.jsx:713 +#: src/components/account-info.jsx:736 msgid "Verified" msgstr "" #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) #. placeholder {0}: niceDateTime(createdAt, { hideTime: true, }) #: src/components/account-block.jsx:223 -#: src/components/account-info.jsx:813 +#: src/components/account-info.jsx:838 msgid "Joined <0>{0}" msgstr "" @@ -77,37 +77,37 @@ msgstr "" msgid "Forever" msgstr "" -#: src/components/account-info.jsx:380 +#: src/components/account-info.jsx:383 msgid "Unable to load account." msgstr "" -#: src/components/account-info.jsx:395 +#: src/components/account-info.jsx:398 msgid "Go to account page" msgstr "" -#: src/components/account-info.jsx:424 -#: src/components/account-info.jsx:735 -#: src/components/account-info.jsx:765 +#: src/components/account-info.jsx:427 +#: src/components/account-info.jsx:758 +#: src/components/account-info.jsx:788 msgid "Followers" msgstr "" #. js-lingui-explicit-id -#: src/components/account-info.jsx:427 -#: src/components/account-info.jsx:775 -#: src/components/account-info.jsx:792 +#: src/components/account-info.jsx:431 +#: src/components/account-info.jsx:798 +#: src/components/account-info.jsx:817 msgid "following.stats" msgstr "Following" -#: src/components/account-info.jsx:430 -#: src/components/account-info.jsx:809 +#: src/components/account-info.jsx:434 +#: src/components/account-info.jsx:834 #: src/pages/account-statuses.jsx:479 #: src/pages/search.jsx:328 #: src/pages/search.jsx:475 msgid "Posts" msgstr "" -#: src/components/account-info.jsx:438 -#: src/components/account-info.jsx:1151 +#: src/components/account-info.jsx:442 +#: src/components/account-info.jsx:1198 #: src/components/compose.jsx:2772 #: src/components/media-alt-modal.jsx:46 #: src/components/media-modal.jsx:358 @@ -127,50 +127,56 @@ msgstr "" msgid "More" msgstr "" -#: src/components/account-info.jsx:450 +#: src/components/account-info.jsx:454 msgid "<0>{displayName} has indicated that their new account is now:" msgstr "" -#: src/components/account-info.jsx:595 -#: src/components/account-info.jsx:1309 +#: src/components/account-info.jsx:599 +#: src/components/account-info.jsx:1356 msgid "Handle copied" msgstr "Handle copied" -#: src/components/account-info.jsx:598 -#: src/components/account-info.jsx:1312 +#: src/components/account-info.jsx:602 +#: src/components/account-info.jsx:1359 msgid "Unable to copy handle" msgstr "Unable to copy handle" -#: src/components/account-info.jsx:604 -#: src/components/account-info.jsx:1318 +#: src/components/account-info.jsx:608 +#: src/components/account-info.jsx:1365 msgid "Copy handle" msgstr "" -#: src/components/account-info.jsx:610 +#: src/components/account-info.jsx:614 msgid "Go to original profile page" msgstr "" -#: src/components/account-info.jsx:628 +#: src/components/account-info.jsx:632 msgid "View profile image" msgstr "" -#: src/components/account-info.jsx:645 +#: src/components/account-info.jsx:649 msgid "View profile header" msgstr "" -#: src/components/account-info.jsx:662 +#: src/components/account-info.jsx:664 +#: src/components/account-info.jsx:1666 +#: src/components/account-info.jsx:2184 +msgid "Edit profile" +msgstr "" + +#: src/components/account-info.jsx:683 msgid "In Memoriam" msgstr "" -#: src/components/account-info.jsx:742 -#: src/components/account-info.jsx:783 +#: src/components/account-info.jsx:765 +#: src/components/account-info.jsx:808 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:838 +#: src/components/account-info.jsx:863 msgid "{0} original posts, {1} replies, {2} boosts" msgstr "{0} original posts, {1} replies, {2} boosts" @@ -181,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:854 +#: src/components/account-info.jsx:879 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:867 +#: src/components/account-info.jsx:895 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:891 +#: src/components/account-info.jsx:920 #: src/pages/catchup.jsx:70 msgid "Original" msgstr "" -#: src/components/account-info.jsx:895 +#: src/components/account-info.jsx:924 #: src/components/status.jsx:2303 #: src/pages/catchup.jsx:71 #: src/pages/catchup.jsx:1445 @@ -206,7 +212,7 @@ msgstr "" msgid "Replies" msgstr "" -#: src/components/account-info.jsx:899 +#: src/components/account-info.jsx:928 #: src/pages/catchup.jsx:72 #: src/pages/catchup.jsx:1447 #: src/pages/catchup.jsx:2070 @@ -214,210 +220,205 @@ msgstr "" msgid "Boosts" msgstr "" -#: src/components/account-info.jsx:905 +#: src/components/account-info.jsx:934 msgid "Post stats unavailable." msgstr "" -#: src/components/account-info.jsx:936 +#: src/components/account-info.jsx:965 msgid "View post stats" msgstr "" #. placeholder {0}: niceDateTime(lastStatusAt, { hideTime: true, }) -#: src/components/account-info.jsx:1099 +#: src/components/account-info.jsx:1146 msgid "Last post: <0>{0}" msgstr "" -#: src/components/account-info.jsx:1113 +#: src/components/account-info.jsx:1160 msgid "Muted" msgstr "" -#: src/components/account-info.jsx:1118 +#: src/components/account-info.jsx:1165 msgid "Blocked" msgstr "" -#: src/components/account-info.jsx:1127 +#: src/components/account-info.jsx:1174 msgid "Private note" msgstr "Private note" -#: src/components/account-info.jsx:1184 +#: src/components/account-info.jsx:1231 msgid "Mention <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1196 +#: src/components/account-info.jsx:1243 msgid "Translate bio" msgstr "" -#: src/components/account-info.jsx:1207 +#: src/components/account-info.jsx:1254 msgid "Edit private note" msgstr "Edit private note" -#: src/components/account-info.jsx:1207 +#: src/components/account-info.jsx:1254 msgid "Add private note" msgstr "Add private note" -#: src/components/account-info.jsx:1227 +#: src/components/account-info.jsx:1274 msgid "Notifications enabled for @{username}'s posts." msgstr "Notifications enabled for @{username}'s posts." -#: src/components/account-info.jsx:1228 +#: src/components/account-info.jsx:1275 msgid " Notifications disabled for @{username}'s posts." msgstr " Notifications disabled for @{username}'s posts." -#: src/components/account-info.jsx:1240 +#: src/components/account-info.jsx:1287 msgid "Disable notifications" msgstr "Disable notifications" -#: src/components/account-info.jsx:1241 +#: src/components/account-info.jsx:1288 msgid "Enable notifications" msgstr "Enable notifications" -#: src/components/account-info.jsx:1258 +#: src/components/account-info.jsx:1305 msgid "Boosts from @{username} enabled." msgstr "Boosts from @{username} enabled." -#: src/components/account-info.jsx:1259 +#: src/components/account-info.jsx:1306 msgid "Boosts from @{username} disabled." msgstr "Boosts from @{username} disabled." -#: src/components/account-info.jsx:1270 +#: src/components/account-info.jsx:1317 msgid "Disable boosts" msgstr "Disable boosts" -#: src/components/account-info.jsx:1270 +#: src/components/account-info.jsx:1317 msgid "Enable boosts" msgstr "Enable boosts" -#: src/components/account-info.jsx:1286 -#: src/components/account-info.jsx:1296 -#: src/components/account-info.jsx:1899 +#: src/components/account-info.jsx:1333 +#: src/components/account-info.jsx:1343 +#: src/components/account-info.jsx:1930 msgid "Add/Remove from Lists" msgstr "" -#: src/components/account-info.jsx:1335 +#: src/components/account-info.jsx:1382 #: src/components/status.jsx:1210 msgid "Link copied" msgstr "" -#: src/components/account-info.jsx:1338 +#: src/components/account-info.jsx:1385 #: src/components/status.jsx:1213 msgid "Unable to copy link" msgstr "" -#: src/components/account-info.jsx:1344 +#: src/components/account-info.jsx:1391 #: src/components/shortcuts-settings.jsx:1059 #: src/components/status.jsx:1219 #: src/components/status.jsx:3298 msgid "Copy" msgstr "" -#: src/components/account-info.jsx:1359 +#: src/components/account-info.jsx:1406 #: src/components/shortcuts-settings.jsx:1077 #: src/components/status.jsx:1235 msgid "Sharing doesn't seem to work." msgstr "" -#: src/components/account-info.jsx:1365 +#: src/components/account-info.jsx:1412 #: src/components/status.jsx:1241 msgid "Share…" msgstr "" -#: src/components/account-info.jsx:1385 +#: src/components/account-info.jsx:1432 msgid "Unmuted @{username}" msgstr "Unmuted @{username}" -#: src/components/account-info.jsx:1397 +#: src/components/account-info.jsx:1444 msgid "Unmute <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1413 +#: src/components/account-info.jsx:1460 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:1445 +#: src/components/account-info.jsx:1492 msgid "Muted @{username} for {0}" msgstr "Muted @{username} for {0}" -#: src/components/account-info.jsx:1457 +#: src/components/account-info.jsx:1504 msgid "Unable to mute @{username}" msgstr "Unable to mute @{username}" -#: src/components/account-info.jsx:1478 +#: src/components/account-info.jsx:1525 msgid "Remove <0>@{username} from followers?" msgstr "" -#: src/components/account-info.jsx:1498 +#: src/components/account-info.jsx:1545 msgid "@{username} removed from followers" msgstr "@{username} removed from followers" -#: src/components/account-info.jsx:1510 +#: src/components/account-info.jsx:1557 msgid "Remove follower…" msgstr "" -#: src/components/account-info.jsx:1521 +#: src/components/account-info.jsx:1568 msgid "Block <0>@{username}?" msgstr "" -#: src/components/account-info.jsx:1545 +#: src/components/account-info.jsx:1592 msgid "Unblocked @{username}" msgstr "Unblocked @{username}" -#: src/components/account-info.jsx:1553 +#: src/components/account-info.jsx:1600 msgid "Blocked @{username}" msgstr "Blocked @{username}" -#: src/components/account-info.jsx:1561 +#: src/components/account-info.jsx:1608 msgid "Unable to unblock @{username}" msgstr "Unable to unblock @{username}" -#: src/components/account-info.jsx:1563 +#: src/components/account-info.jsx:1610 msgid "Unable to block @{username}" msgstr "Unable to block @{username}" -#: src/components/account-info.jsx:1573 +#: src/components/account-info.jsx:1620 msgid "Unblock <0>@{username}" msgstr "" -#: src/components/account-info.jsx:1582 +#: src/components/account-info.jsx:1629 msgid "Block <0>@{username}…" msgstr "" -#: src/components/account-info.jsx:1599 +#: src/components/account-info.jsx:1646 msgid "Report <0>@{username}…" msgstr "" -#: src/components/account-info.jsx:1619 -#: src/components/account-info.jsx:2153 -msgid "Edit profile" -msgstr "" - -#: src/components/account-info.jsx:1655 +#: src/components/account-info.jsx:1702 msgid "Withdraw follow request?" msgstr "Withdraw follow request?" #. placeholder {1}: info.acct || info.username -#: src/components/account-info.jsx:1656 +#: src/components/account-info.jsx:1703 msgid "Unfollow @{1}?" msgstr "Unfollow @{1}?" -#: src/components/account-info.jsx:1707 +#: src/components/account-info.jsx:1754 msgid "Unfollow…" msgstr "" -#: src/components/account-info.jsx:1716 +#: src/components/account-info.jsx:1763 msgid "Withdraw…" msgstr "" -#: src/components/account-info.jsx:1723 -#: src/components/account-info.jsx:1727 +#: src/components/account-info.jsx:1770 +#: src/components/account-info.jsx:1774 #: src/pages/hashtag.jsx:262 msgid "Follow" msgstr "" -#: src/components/account-info.jsx:1839 -#: src/components/account-info.jsx:1894 -#: src/components/account-info.jsx:2028 -#: src/components/account-info.jsx:2148 +#: src/components/account-info.jsx:1870 +#: src/components/account-info.jsx:1925 +#: src/components/account-info.jsx:2059 +#: src/components/account-info.jsx:2179 #: src/components/account-sheet.jsx:38 #: src/components/compose.jsx:881 #: src/components/compose.jsx:2728 @@ -450,85 +451,85 @@ msgstr "" msgid "Close" msgstr "" -#: src/components/account-info.jsx:1844 +#: src/components/account-info.jsx:1875 msgid "Translated Bio" msgstr "" -#: src/components/account-info.jsx:1939 +#: src/components/account-info.jsx:1970 msgid "Unable to remove from list." msgstr "Unable to remove from list." -#: src/components/account-info.jsx:1940 +#: src/components/account-info.jsx:1971 msgid "Unable to add to list." msgstr "Unable to add to list." -#: src/components/account-info.jsx:1959 +#: src/components/account-info.jsx:1990 #: src/pages/lists.jsx:105 msgid "Unable to load lists." msgstr "" -#: src/components/account-info.jsx:1963 +#: src/components/account-info.jsx:1994 msgid "No lists." msgstr "" -#: src/components/account-info.jsx:1974 +#: src/components/account-info.jsx:2005 #: 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:2033 +#: src/components/account-info.jsx:2064 msgid "Private note about <0>@{0}" msgstr "" -#: src/components/account-info.jsx:2063 +#: src/components/account-info.jsx:2094 msgid "Unable to update private note." msgstr "Unable to update private note." -#: src/components/account-info.jsx:2086 -#: src/components/account-info.jsx:2384 +#: src/components/account-info.jsx:2117 +#: src/components/account-info.jsx:2415 msgid "Cancel" msgstr "" -#: src/components/account-info.jsx:2091 +#: src/components/account-info.jsx:2122 msgid "Save & close" msgstr "" -#: src/components/account-info.jsx:2208 +#: src/components/account-info.jsx:2239 msgid "Unable to update profile." msgstr "Unable to update profile." -#: src/components/account-info.jsx:2215 +#: src/components/account-info.jsx:2246 msgid "Header picture" msgstr "Header picture" -#: src/components/account-info.jsx:2267 +#: src/components/account-info.jsx:2298 msgid "Profile picture" msgstr "Profile picture" -#: src/components/account-info.jsx:2319 +#: src/components/account-info.jsx:2350 #: src/components/list-add-edit.jsx:105 msgid "Name" msgstr "" -#: src/components/account-info.jsx:2332 +#: src/components/account-info.jsx:2363 msgid "Bio" msgstr "" -#: src/components/account-info.jsx:2345 +#: src/components/account-info.jsx:2376 msgid "Extra fields" msgstr "" -#: src/components/account-info.jsx:2351 +#: src/components/account-info.jsx:2382 msgid "Label" msgstr "" -#: src/components/account-info.jsx:2354 +#: src/components/account-info.jsx:2385 msgid "Content" msgstr "" -#: src/components/account-info.jsx:2387 +#: src/components/account-info.jsx:2418 #: src/components/list-add-edit.jsx:150 #: src/components/shortcuts-settings.jsx:715 #: src/pages/filters.jsx:554 @@ -536,11 +537,11 @@ msgstr "" msgid "Save" msgstr "" -#: src/components/account-info.jsx:2441 +#: src/components/account-info.jsx:2472 msgid "username" msgstr "" -#: src/components/account-info.jsx:2445 +#: src/components/account-info.jsx:2476 msgid "server domain name" msgstr ""