Add explanation as to why unlocked accounts may have follow requests (#13385)

* Add explanation as to why unlocked accounts may have follow requests

* Change wording to avoid “silenced”
lolsob-rspec
ThibG 2020-04-04 19:02:10 +02:00 committed by GitHub
parent 97e51733ff
commit ffd6f3fa8a
4 changed files with 29 additions and 3 deletions

View File

@ -11,6 +11,7 @@ import ColumnBackButtonSlim from '../../components/column_back_button_slim';
import AccountAuthorizeContainer from './containers/account_authorize_container'; import AccountAuthorizeContainer from './containers/account_authorize_container';
import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts'; import { fetchFollowRequests, expandFollowRequests } from '../../actions/accounts';
import ScrollableList from '../../components/scrollable_list'; import ScrollableList from '../../components/scrollable_list';
import { me } from '../../initial_state';
const messages = defineMessages({ const messages = defineMessages({
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' }, heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
@ -19,6 +20,8 @@ const messages = defineMessages({
const mapStateToProps = state => ({ const mapStateToProps = state => ({
accountIds: state.getIn(['user_lists', 'follow_requests', 'items']), accountIds: state.getIn(['user_lists', 'follow_requests', 'items']),
hasMore: !!state.getIn(['user_lists', 'follow_requests', 'next']), hasMore: !!state.getIn(['user_lists', 'follow_requests', 'next']),
locked: !!state.getIn(['accounts', me, 'locked']),
domain: state.getIn(['meta', 'domain']),
}); });
export default @connect(mapStateToProps) export default @connect(mapStateToProps)
@ -31,6 +34,8 @@ class FollowRequests extends ImmutablePureComponent {
shouldUpdateScroll: PropTypes.func, shouldUpdateScroll: PropTypes.func,
hasMore: PropTypes.bool, hasMore: PropTypes.bool,
accountIds: ImmutablePropTypes.list, accountIds: ImmutablePropTypes.list,
locked: PropTypes.bool,
domain: PropTypes.string,
intl: PropTypes.object.isRequired, intl: PropTypes.object.isRequired,
multiColumn: PropTypes.bool, multiColumn: PropTypes.bool,
}; };
@ -44,7 +49,7 @@ class FollowRequests extends ImmutablePureComponent {
}, 300, { leading: true }); }, 300, { leading: true });
render () { render () {
const { intl, shouldUpdateScroll, accountIds, hasMore, multiColumn } = this.props; const { intl, shouldUpdateScroll, accountIds, hasMore, multiColumn, locked, domain } = this.props;
if (!accountIds) { if (!accountIds) {
return ( return (
@ -55,6 +60,15 @@ class FollowRequests extends ImmutablePureComponent {
} }
const emptyMessage = <FormattedMessage id='empty_column.follow_requests' defaultMessage="You don't have any follow requests yet. When you receive one, it will show up here." />; const emptyMessage = <FormattedMessage id='empty_column.follow_requests' defaultMessage="You don't have any follow requests yet. When you receive one, it will show up here." />;
const unlockedPrependMessage = locked ? null : (
<div className='follow_requests-unlocked_explanation'>
<FormattedMessage
id='follow_requests.unlocked_explanation'
defaultMessage='Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.'
values={{ domain: domain }}
/>
</div>
);
return ( return (
<Column bindToDocument={!multiColumn} icon='user-plus' heading={intl.formatMessage(messages.heading)}> <Column bindToDocument={!multiColumn} icon='user-plus' heading={intl.formatMessage(messages.heading)}>
@ -66,6 +80,7 @@ class FollowRequests extends ImmutablePureComponent {
shouldUpdateScroll={shouldUpdateScroll} shouldUpdateScroll={shouldUpdateScroll}
emptyMessage={emptyMessage} emptyMessage={emptyMessage}
bindToDocument={!multiColumn} bindToDocument={!multiColumn}
prepend={unlockedPrependMessage}
> >
{accountIds.map(id => {accountIds.map(id =>
<AccountAuthorizeContainer key={id} id={id} />, <AccountAuthorizeContainer key={id} id={id} />,

View File

@ -1532,6 +1532,10 @@
{ {
"defaultMessage": "You don't have any follow requests yet. When you receive one, it will show up here.", "defaultMessage": "You don't have any follow requests yet. When you receive one, it will show up here.",
"id": "empty_column.follow_requests" "id": "empty_column.follow_requests"
},
{
"defaultMessage": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"id": "follow_requests.unlocked_explanation"
} }
], ],
"path": "app/javascript/mastodon/features/follow_requests/index.json" "path": "app/javascript/mastodon/features/follow_requests/index.json"
@ -2948,4 +2952,4 @@
], ],
"path": "app/javascript/mastodon/features/video/index.json" "path": "app/javascript/mastodon/features/video/index.json"
} }
] ]

View File

@ -164,6 +164,7 @@
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"follow_request.authorize": "Authorize", "follow_request.authorize": "Authorize",
"follow_request.reject": "Reject", "follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"getting_started.developers": "Developers", "getting_started.developers": "Developers",
"getting_started.directory": "Profile directory", "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation", "getting_started.documentation": "Documentation",

View File

@ -3800,7 +3800,8 @@ a.status-card.compact:hover {
} }
.empty-column-indicator, .empty-column-indicator,
.error-column { .error-column,
.follow_requests-unlocked_explanation {
color: $dark-text-color; color: $dark-text-color;
background: $ui-base-color; background: $ui-base-color;
text-align: center; text-align: center;
@ -3831,6 +3832,11 @@ a.status-card.compact:hover {
} }
} }
.follow_requests-unlocked_explanation {
background: darken($ui-base-color, 4%);
contain: initial;
}
.error-column { .error-column {
flex-direction: column; flex-direction: column;
} }