diff --git a/packages/nicolium/src/features/preferences/index.tsx b/packages/nicolium/src/features/preferences/index.tsx index 9b474c801..820b22850 100644 --- a/packages/nicolium/src/features/preferences/index.tsx +++ b/packages/nicolium/src/features/preferences/index.tsx @@ -312,6 +312,23 @@ const Preferences = () => { /> + + } + > + + + ; reblogIds: Array; isConnectedTop?: boolean; @@ -126,6 +127,7 @@ const processPage = (statuses: Array): Array => { type: 'status', id: status.reblog.id, originalId: status.id, + accountId: status.reblog.account.id, rebloggedBy: [status.account.id], reblogIds: [status.id], isConnectedTop, @@ -143,6 +145,7 @@ const processPage = (statuses: Array): Array => { type: 'status', id: status.id, originalId: status.id, + accountId: status.account.id, rebloggedBy: [], reblogIds: [], isConnectedTop, @@ -347,6 +350,7 @@ const useTimelinesStore = create()( type: 'status', id: status.id, originalId: status.id, + accountId: status.account.id, rebloggedBy: [], reblogIds: [], isReply: status.in_reply_to_id !== null, diff --git a/packages/nicolium/src/utils/timeline-filter.ts b/packages/nicolium/src/utils/timeline-filter.ts index 9f737c430..75afd6059 100644 --- a/packages/nicolium/src/utils/timeline-filter.ts +++ b/packages/nicolium/src/utils/timeline-filter.ts @@ -8,6 +8,10 @@ type StatusEntry = Extract; const isEntryFiltered = (entry: StatusEntry, filters: TimelineFilters): boolean => (filters?.showDirect === false && entry.isDirect) || (filters?.showReblogs === false && entry.isReblog) || + (filters?.showSelfReblogs === false && + entry.isReblog && + entry.rebloggedBy.length === 1 && + entry.rebloggedBy[0] === entry.accountId) || (filters?.showReplies === false && entry.isReply) || (filters?.showQuotes === false && entry.isQuote) || (filters?.showNonMedia === false && !entry.hasMedia);