Add fallback to domain block confirmation modal (#32105)

This commit is contained in:
Claire 2024-09-26 14:47:56 +02:00 committed by GitHub
parent 89df27a06c
commit 7a62d57427
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 36 additions and 16 deletions

View file

@ -30,9 +30,9 @@ export const DomainBlockModal: React.FC<{
}> = ({ domain, accountId, acct }) => { }> = ({ domain, accountId, acct }) => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
const [preview, setPreview] = useState<DomainBlockPreviewResponse | null>( const [preview, setPreview] = useState<
null, DomainBlockPreviewResponse | 'error' | null
); >(null);
const handleClick = useCallback(() => { const handleClick = useCallback(() => {
if (loading) { if (loading) {
@ -65,6 +65,7 @@ export const DomainBlockModal: React.FC<{
return ''; return '';
}) })
.catch(() => { .catch(() => {
setPreview('error');
setLoading(false); setLoading(false);
}); });
}, [setPreview, setLoading, domain]); }, [setPreview, setLoading, domain]);
@ -89,7 +90,35 @@ export const DomainBlockModal: React.FC<{
</div> </div>
<div className='safety-action-modal__bullet-points'> <div className='safety-action-modal__bullet-points'>
{preview && preview.followers_count + preview.following_count > 0 && ( {preview &&
preview !== 'error' &&
preview.followers_count + preview.following_count > 0 && (
<div>
<div className='safety-action-modal__bullet-points__icon'>
<Icon id='' icon={PersonRemoveIcon} />
</div>
<div>
<strong>
<FormattedMessage
id='domain_block_modal.you_will_lose_num_followers'
defaultMessage='You will lose {followersCount, plural, one {{followersCountDisplay} follower} other {{followersCountDisplay} followers}} and {followingCount, plural, one {{followingCountDisplay} person you follow} other {{followingCountDisplay} people you follow}}.'
values={{
followersCount: preview.followers_count,
followersCountDisplay: (
<ShortNumber value={preview.followers_count} />
),
followingCount: preview.following_count,
followingCountDisplay: (
<ShortNumber value={preview.following_count} />
),
}}
/>
</strong>
</div>
</div>
)}
{preview === 'error' && (
<div> <div>
<div className='safety-action-modal__bullet-points__icon'> <div className='safety-action-modal__bullet-points__icon'>
<Icon id='' icon={PersonRemoveIcon} /> <Icon id='' icon={PersonRemoveIcon} />
@ -97,18 +126,8 @@ export const DomainBlockModal: React.FC<{
<div> <div>
<strong> <strong>
<FormattedMessage <FormattedMessage
id='domain_block_modal.you_will_lose_num_followers' id='domain_block_modal.you_will_lose_relationships'
defaultMessage='You will lose {followersCount, plural, one {{followersCountDisplay} follower} other {{followersCountDisplay} followers}} and {followingCount, plural, one {{followingCountDisplay} person you follow} other {{followingCountDisplay} people you follow}}.' defaultMessage='You will lose all followers and people you follow from this server.'
values={{
followersCount: preview.followers_count,
followersCountDisplay: (
<ShortNumber value={preview.followers_count} />
),
followingCount: preview.following_count,
followingCountDisplay: (
<ShortNumber value={preview.following_count} />
),
}}
/> />
</strong> </strong>
</div> </div>

View file

@ -222,6 +222,7 @@
"domain_block_modal.they_wont_know": "They won't know they've been blocked.", "domain_block_modal.they_wont_know": "They won't know they've been blocked.",
"domain_block_modal.title": "Block domain?", "domain_block_modal.title": "Block domain?",
"domain_block_modal.you_will_lose_num_followers": "You will lose {followersCount, plural, one {{followersCountDisplay} follower} other {{followersCountDisplay} followers}} and {followingCount, plural, one {{followingCountDisplay} person you follow} other {{followingCountDisplay} people you follow}}.", "domain_block_modal.you_will_lose_num_followers": "You will lose {followersCount, plural, one {{followersCountDisplay} follower} other {{followersCountDisplay} followers}} and {followingCount, plural, one {{followingCountDisplay} person you follow} other {{followingCountDisplay} people you follow}}.",
"domain_block_modal.you_will_lose_relationships": "You will lose all followers and people you follow from this server.",
"domain_block_modal.you_wont_see_posts": "You won't see posts or notifications from users on this server.", "domain_block_modal.you_wont_see_posts": "You won't see posts or notifications from users on this server.",
"domain_pill.activitypub_lets_connect": "It lets you connect and interact with people not just on Mastodon, but across different social apps too.", "domain_pill.activitypub_lets_connect": "It lets you connect and interact with people not just on Mastodon, but across different social apps too.",
"domain_pill.activitypub_like_language": "ActivityPub is like the language Mastodon speaks with other social networks.", "domain_pill.activitypub_like_language": "ActivityPub is like the language Mastodon speaks with other social networks.",