[Glitch] Add messages informing that collections are empty
Port 5129f6f2aa
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
This commit is contained in:
@ -2,20 +2,21 @@ import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { debounce } from 'lodash';
|
||||
import LoadingIndicator from 'flavours/glitch/components/loading_indicator';
|
||||
import {
|
||||
fetchAccount,
|
||||
fetchFollowers,
|
||||
expandFollowers,
|
||||
} from 'flavours/glitch/actions/accounts';
|
||||
import { ScrollContainer } from 'react-router-scroll-4';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import AccountContainer from 'flavours/glitch/containers/account_container';
|
||||
import Column from 'flavours/glitch/features/ui/components/column';
|
||||
import ProfileColumnHeader from 'flavours/glitch/features/account/components/profile_column_header';
|
||||
import HeaderContainer from 'flavours/glitch/features/account_timeline/containers/header_container';
|
||||
import LoadMore from 'flavours/glitch/components/load_more';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import MissingIndicator from 'flavours/glitch/components/missing_indicator';
|
||||
import ScrollableList from 'flavours/glitch/components/scrollable_list';
|
||||
|
||||
const mapStateToProps = (state, props) => ({
|
||||
isAccount: !!state.getIn(['accounts', props.params.accountId]),
|
||||
@ -58,10 +59,10 @@ export default class Followers extends ImmutablePureComponent {
|
||||
}
|
||||
}
|
||||
|
||||
handleLoadMore = (e) => {
|
||||
handleLoadMore = debounce(() => {
|
||||
e.preventDefault();
|
||||
this.props.dispatch(expandFollowers(this.props.params.accountId));
|
||||
}
|
||||
}, 300, { leading: true });
|
||||
|
||||
shouldUpdateScroll = (prevRouterProps, { location }) => {
|
||||
if ((((prevRouterProps || {}).location || {}).state || {}).mastodonModalOpen) return false;
|
||||
@ -83,8 +84,6 @@ export default class Followers extends ImmutablePureComponent {
|
||||
);
|
||||
}
|
||||
|
||||
let loadMore = null;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
<Column>
|
||||
@ -93,23 +92,25 @@ export default class Followers extends ImmutablePureComponent {
|
||||
);
|
||||
}
|
||||
|
||||
if (hasMore) {
|
||||
loadMore = <LoadMore onClick={this.handleLoadMore} />;
|
||||
}
|
||||
const emptyMessage = <FormattedMessage id='account.followers.empty' defaultMessage='No one follows this user yet.' />;
|
||||
|
||||
return (
|
||||
<Column ref={this.setRef}>
|
||||
<ProfileColumnHeader onClick={this.handleHeaderClick} />
|
||||
|
||||
<ScrollContainer scrollKey='followers' shouldUpdateScroll={this.shouldUpdateScroll}>
|
||||
<div className='scrollable' onScroll={this.handleScroll}>
|
||||
<div className='followers'>
|
||||
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
|
||||
{accountIds.map(id => <AccountContainer key={id} id={id} withNote={false} />)}
|
||||
{loadMore}
|
||||
</div>
|
||||
</div>
|
||||
</ScrollContainer>
|
||||
<HeaderContainer accountId={this.props.params.accountId} hideTabs />
|
||||
|
||||
<ScrollableList
|
||||
scrollKey='followers'
|
||||
hasMore={hasMore}
|
||||
onLoadMore={this.handleLoadMore}
|
||||
shouldUpdateScroll={this.shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} withNote={false} />
|
||||
)}
|
||||
</ScrollableList>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user