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);