diff --git a/app/javascript/mastodon/api_types/notifications.ts b/app/javascript/mastodon/api_types/notifications.ts
index fe729c0ee4..01ae3c3b1d 100644
--- a/app/javascript/mastodon/api_types/notifications.ts
+++ b/app/javascript/mastodon/api_types/notifications.ts
@@ -44,6 +44,10 @@ interface ReportNotificationGroupJSON extends BaseNotificationGroupJSON {
report: ApiReportJSON;
}
+interface SimpleNotificationGroupJSON extends BaseNotificationGroupJSON {
+ type: 'follow' | 'follow_request' | 'admin.sign_up';
+}
+
export interface ApiAccountWarningJSON {
id: string;
action: AccountWarningAction;
@@ -77,6 +81,7 @@ interface AccountRelationshipSeveranceNotificationGroupJSON
}
export type NotificationGroupJSON =
+ | SimpleNotificationGroupJSON
| ReportNotificationGroupJSON
| AccountRelationshipSeveranceNotificationGroupJSON
| NotificationGroupWithStatusJSON
diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
index 76d038d6a2..b040c3a68e 100644
--- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
+++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx
@@ -62,7 +62,7 @@ export const NotificationGroupWithStatus: React.FC<{
{label}
-
+ {timestamp && }
diff --git a/app/javascript/mastodon/models/notification_group.ts b/app/javascript/mastodon/models/notification_group.ts
index 78dd1b948a..f9c76e80e7 100644
--- a/app/javascript/mastodon/models/notification_group.ts
+++ b/app/javascript/mastodon/models/notification_group.ts
@@ -113,25 +113,28 @@ export function createNotificationGroupFromJSON(
const { sample_accounts, ...group } = groupJson;
const sampleAccountsIds = sample_accounts.map((account) => account.id);
- if ('status' in group) {
- const { status, ...groupWithoutStatus } = group;
- return {
- statusId: status.id,
- sampleAccountsIds,
- ...groupWithoutStatus,
- };
- }
-
- if ('report' in group) {
- const { report, ...groupWithoutTargetAccount } = group;
- return {
- report: createReportFromJSON(report),
- sampleAccountsIds,
- ...groupWithoutTargetAccount,
- };
- }
-
switch (group.type) {
+ case 'favourite':
+ case 'reblog':
+ case 'status':
+ case 'mention':
+ case 'poll':
+ case 'update': {
+ const { status, ...groupWithoutStatus } = group;
+ return {
+ statusId: status.id,
+ sampleAccountsIds,
+ ...groupWithoutStatus,
+ };
+ }
+ case 'admin.report': {
+ const { report, ...groupWithoutTargetAccount } = group;
+ return {
+ report: createReportFromJSON(report),
+ sampleAccountsIds,
+ ...groupWithoutTargetAccount,
+ };
+ }
case 'severed_relationships':
return {
...group,
@@ -147,11 +150,10 @@ export function createNotificationGroupFromJSON(
sampleAccountsIds,
};
}
- // This is commented out because all group types are covered in the previous statement and have their returns
- // default:
- // return {
- // sampleAccountsIds,
- // ...group,
- // };
+ default:
+ return {
+ sampleAccountsIds,
+ ...group,
+ };
}
}