Timeline: Use messageChangeCounter to mark messages read less often

This commit is contained in:
Scott Nonnenberg 2022-05-11 15:41:45 -07:00 committed by GitHub
parent 69d0ed3309
commit af2c884c9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 162 additions and 6 deletions

View file

@ -542,6 +542,7 @@ const useProps = (overrideProps: Partial<PropsType> = {}): PropsType => ({
overrideProps.isIncomingMessageRequest === true
),
items: overrideProps.items || Object.keys(items),
messageChangeCounter: 0,
scrollToIndex: overrideProps.scrollToIndex,
scrollToIndexCounter: 0,
totalUnseen: number('totalUnseen', overrideProps.totalUnseen || 0),

View file

@ -86,6 +86,7 @@ export type ContactSpoofingReviewPropType =
export type PropsDataType = {
haveNewest: boolean;
haveOldest: boolean;
messageChangeCounter: number;
messageLoadingState?: TimelineMessageLoadingState;
isNearBottom?: boolean;
items: ReadonlyArray<string>;
@ -648,12 +649,14 @@ export class Timeline extends React.Component<
): void {
const {
items: oldItems,
messageChangeCounter: previousMessageChangeCounter,
messageLoadingState: previousMessageLoadingState,
} = prevProps;
const {
discardMessages,
id,
items: newItems,
messageChangeCounter,
messageLoadingState,
} = this.props;
@ -712,7 +715,8 @@ export class Timeline extends React.Component<
numberToKeepAtTop,
});
}
} else {
}
if (previousMessageChangeCounter !== messageChangeCounter) {
this.markNewestBottomVisibleMessageRead();
}
}