Virtualize Messages List - only render what's visible

This commit is contained in:
Scott Nonnenberg 2019-05-31 15:42:01 -07:00
parent a976cfe6b6
commit 5ebd8bc690
73 changed files with 4717 additions and 2745 deletions

View file

@ -4,7 +4,7 @@ import classNames from 'classnames';
import { LocalizerType } from '../../types/Util';
type Props = {
count: number;
withNewMessages: boolean;
conversationId: string;
scrollDown: (conversationId: string) => void;
@ -14,21 +14,17 @@ type Props = {
export class ScrollDownButton extends React.Component<Props> {
public render() {
const { conversationId, count, i18n, scrollDown } = this.props;
let altText = i18n('scrollDown');
if (count > 1) {
altText = i18n('messagesBelow');
} else if (count === 1) {
altText = i18n('messageBelow');
}
const { conversationId, withNewMessages, i18n, scrollDown } = this.props;
const altText = withNewMessages
? i18n('messagesBelow')
: i18n('scrollDown');
return (
<div className="module-scroll-down">
<button
className={classNames(
'module-scroll-down__button',
count > 0 ? 'module-scroll-down__button--new-messages' : null
withNewMessages ? 'module-scroll-down__button--new-messages' : null
)}
onClick={() => {
scrollDown(conversationId);