chat: make backlog height only reflect loaded messages

fixes #3496
This commit is contained in:
Tyler Brown Cifu Shuster 2020-09-17 20:00:45 -07:00
parent 6f5663bcd3
commit 04ce994157
2 changed files with 12 additions and 8 deletions

View File

@ -20,6 +20,7 @@ import { BacklogElement } from "./backlog-element";
const INITIAL_LOAD = 20;
const DEFAULT_BACKLOG_SIZE = 100;
const IDLE_THRESHOLD = 64;
const MAX_BACKLOG_SIZE = 1000;
type ChatWindowProps = RouteComponentProps<{
ship: Patp;
@ -188,8 +189,11 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta
this.setState({ fetchPending: true });
start = Math.min(mailboxSize - start, mailboxSize);
end = Math.max(mailboxSize - end, 0, start - MAX_BACKLOG_SIZE);
return api.chat
.fetchMessages(Math.max(mailboxSize - end, 0), Math.min(mailboxSize - start, mailboxSize), station)
.fetchMessages(end, start, station)
.finally(() => {
this.setState({ fetchPending: false });
});

View File

@ -149,7 +149,7 @@ export default class VirtualScroller extends PureComponent<VirtualScrollerProps,
}
});
endgap += Math.abs(totalSize - data.size) * averageHeight;
// endgap += Math.abs(totalSize - data.size) * averageHeight; // Uncomment to make full height of backlog
startBuffer = new Map([...startBuffer].reverse().slice(0, visibleItems.size));
startBuffer.forEach((datum, index) => {