diff options
author | Renaud Chaput <renchap@gmail.com> | 2023-02-20 03:20:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 03:20:59 +0100 |
commit | 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 (patch) | |
tree | 71b60ccd9b23ec8f8d72fa3562f0bc343c6e456e /app/javascript/mastodon/features/following/index.js | |
parent | f0e1b12c101e0dd0ddaaef8bdcc166624dba62d5 (diff) |
Rename JSX files with proper `.jsx` extension (#23733)
Diffstat (limited to 'app/javascript/mastodon/features/following/index.js')
-rw-r--r-- | app/javascript/mastodon/features/following/index.js | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.js deleted file mode 100644 index e23d9b35c..000000000 --- a/app/javascript/mastodon/features/following/index.js +++ /dev/null @@ -1,170 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import ImmutablePureComponent from 'react-immutable-pure-component'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { debounce } from 'lodash'; -import LoadingIndicator from '../../components/loading_indicator'; -import { - lookupAccount, - fetchAccount, - fetchFollowing, - expandFollowing, -} from '../../actions/accounts'; -import { FormattedMessage } from 'react-intl'; -import AccountContainer from '../../containers/account_container'; -import Column from '../ui/components/column'; -import HeaderContainer from '../account_timeline/containers/header_container'; -import ColumnBackButton from '../../components/column_back_button'; -import ScrollableList from '../../components/scrollable_list'; -import MissingIndicator from 'mastodon/components/missing_indicator'; -import TimelineHint from 'mastodon/components/timeline_hint'; -import LimitedAccountHint from '../account_timeline/components/limited_account_hint'; -import { getAccountHidden } from 'mastodon/selectors'; -import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; - -const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); - - if (!accountId) { - return { - isLoading: true, - }; - } - - return { - accountId, - remote: !!(state.getIn(['accounts', accountId, 'acct']) !== state.getIn(['accounts', accountId, 'username'])), - remoteUrl: state.getIn(['accounts', accountId, 'url']), - isAccount: !!state.getIn(['accounts', accountId]), - accountIds: state.getIn(['user_lists', 'following', accountId, 'items']), - hasMore: !!state.getIn(['user_lists', 'following', accountId, 'next']), - isLoading: state.getIn(['user_lists', 'following', accountId, 'isLoading'], true), - suspended: state.getIn(['accounts', accountId, 'suspended'], false), - hidden: getAccountHidden(state, accountId), - blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), - }; -}; - -const RemoteHint = ({ url }) => ( - <TimelineHint url={url} resource={<FormattedMessage id='timeline_hint.resources.follows' defaultMessage='Follows' />} /> -); - -RemoteHint.propTypes = { - url: PropTypes.string.isRequired, -}; - -export default @connect(mapStateToProps) -class Following extends ImmutablePureComponent { - - static propTypes = { - params: PropTypes.shape({ - acct: PropTypes.string, - id: PropTypes.string, - }).isRequired, - accountId: PropTypes.string, - dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, - hasMore: PropTypes.bool, - isLoading: PropTypes.bool, - blockedBy: PropTypes.bool, - isAccount: PropTypes.bool, - suspended: PropTypes.bool, - hidden: PropTypes.bool, - remote: PropTypes.bool, - remoteUrl: PropTypes.string, - multiColumn: PropTypes.bool, - }; - - _load () { - const { accountId, isAccount, dispatch } = this.props; - - if (!isAccount) dispatch(fetchAccount(accountId)); - dispatch(fetchFollowing(accountId)); - } - - componentDidMount () { - const { params: { acct }, accountId, dispatch } = this.props; - - if (accountId) { - this._load(); - } else { - dispatch(lookupAccount(acct)); - } - } - - componentDidUpdate (prevProps) { - const { params: { acct }, accountId, dispatch } = this.props; - - if (prevProps.accountId !== accountId && accountId) { - this._load(); - } else if (prevProps.params.acct !== acct) { - dispatch(lookupAccount(acct)); - } - } - - handleLoadMore = debounce(() => { - this.props.dispatch(expandFollowing(this.props.accountId)); - }, 300, { leading: true }); - - render () { - const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props; - - if (!isAccount) { - return ( - <Column> - <MissingIndicator /> - </Column> - ); - } - - if (!accountIds) { - return ( - <Column> - <LoadingIndicator /> - </Column> - ); - } - - let emptyMessage; - - const forceEmptyState = blockedBy || suspended || hidden; - - if (suspended) { - emptyMessage = <FormattedMessage id='empty_column.account_suspended' defaultMessage='Account suspended' />; - } else if (hidden) { - emptyMessage = <LimitedAccountHint accountId={accountId} />; - } else if (blockedBy) { - emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />; - } else if (remote && accountIds.isEmpty()) { - emptyMessage = <RemoteHint url={remoteUrl} />; - } else { - emptyMessage = <FormattedMessage id='account.follows.empty' defaultMessage="This user doesn't follow anyone yet." />; - } - - const remoteMessage = remote ? <RemoteHint url={remoteUrl} /> : null; - - return ( - <Column> - <ColumnBackButton multiColumn={multiColumn} /> - - <ScrollableList - scrollKey='following' - hasMore={!forceEmptyState && hasMore} - isLoading={isLoading} - onLoadMore={this.handleLoadMore} - prepend={<HeaderContainer accountId={this.props.accountId} hideTabs />} - alwaysPrepend - append={remoteMessage} - emptyMessage={emptyMessage} - bindToDocument={!multiColumn} - > - {forceEmptyState ? [] : accountIds.map(id => - <AccountContainer key={id} id={id} withNote={false} />, - )} - </ScrollableList> - </Column> - ); - } - -} |