mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
fix: handle purged posts in quote availability and mobile author counts
This commit is contained in:
@@ -197,7 +197,7 @@ const PostInfoAndMedia = ({ post, postReplyCount = 0, roles, threadNumber }: Pos
|
||||
|
||||
const handleUserAddressClick = useAuthorAddressClick();
|
||||
const numberOfPostsByAuthor = (() => {
|
||||
if (!showUserID || deleted || removed || !shortAddress || !postCid || typeof document === 'undefined') {
|
||||
if (!showUserID || deleted || removed || purged || !shortAddress || !postCid || typeof document === 'undefined') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,13 +11,15 @@ describe('quote-link-utils', () => {
|
||||
expect(getQuoteTargetAvailability(undefined)).toBe('unresolved');
|
||||
expect(getQuoteTargetAvailability({ deleted: true, removed: false })).toBe('unavailable');
|
||||
expect(getQuoteTargetAvailability({ deleted: false, removed: true })).toBe('unavailable');
|
||||
expect(getQuoteTargetAvailability({ deleted: false, removed: false, commentModeration: { purged: true } })).toBe('unavailable');
|
||||
expect(getQuoteTargetAvailability({ deleted: false, removed: false })).toBe('available');
|
||||
});
|
||||
|
||||
it('marks deleted and removed comments as unavailable quote targets', () => {
|
||||
it('marks deleted, removed, and purged comments as unavailable quote targets', () => {
|
||||
expect(isUnavailableQuoteTarget(undefined)).toBe(false);
|
||||
expect(isUnavailableQuoteTarget({ deleted: true, removed: false })).toBe(true);
|
||||
expect(isUnavailableQuoteTarget({ deleted: false, removed: true })).toBe(true);
|
||||
expect(isUnavailableQuoteTarget({ deleted: false, removed: false, commentModeration: { purged: true } })).toBe(true);
|
||||
expect(isUnavailableQuoteTarget({ deleted: false, removed: false })).toBe(false);
|
||||
});
|
||||
|
||||
|
||||
@@ -4,15 +4,17 @@ type QuoteTargetAvailability = 'available' | 'unresolved' | 'unavailable';
|
||||
|
||||
export const formatQuoteNumber = (number?: number) => `>>${number ?? '?'}`;
|
||||
|
||||
export const getQuoteTargetAvailability = (comment?: Partial<Pick<Comment, 'deleted' | 'removed'>> | null): QuoteTargetAvailability => {
|
||||
type QuoteTargetComment = Partial<Pick<Comment, 'deleted' | 'removed' | 'commentModeration'>>;
|
||||
|
||||
export const getQuoteTargetAvailability = (comment?: QuoteTargetComment | null): QuoteTargetAvailability => {
|
||||
if (!comment) {
|
||||
return 'unresolved';
|
||||
}
|
||||
|
||||
return comment.deleted || comment.removed ? 'unavailable' : 'available';
|
||||
return comment.deleted || comment.removed || comment.commentModeration?.purged ? 'unavailable' : 'available';
|
||||
};
|
||||
|
||||
export const isUnavailableQuoteTarget = (comment?: Partial<Pick<Comment, 'deleted' | 'removed'>> | null) => getQuoteTargetAvailability(comment) === 'unavailable';
|
||||
export const isUnavailableQuoteTarget = (comment?: QuoteTargetComment | null) => getQuoteTargetAvailability(comment) === 'unavailable';
|
||||
|
||||
export const shouldShowFloatingQuotePreview = ({
|
||||
hoveredCid,
|
||||
|
||||
Reference in New Issue
Block a user