diff --git a/components/status/StatusActions.vue b/components/status/StatusActions.vue
index eb75e70751..53de19f6f3 100644
--- a/components/status/StatusActions.vue
+++ b/components/status/StatusActions.vue
@@ -1,15 +1,18 @@
@@ -63,7 +88,7 @@ function reply() {
:active="!!status.reblogged"
:disabled="isLoading.reblogged || !canReblog"
:command="command"
- @click="toggleReblog()"
+ @click="reblog"
>
diff --git a/components/status/StatusActionsMore.vue b/components/status/StatusActionsMore.vue
index 1afa369f09..2ddb04585a 100644
--- a/components/status/StatusActionsMore.vue
+++ b/components/status/StatusActionsMore.vue
@@ -1,18 +1,21 @@
@@ -317,7 +327,7 @@ function showFavoritedAndBoostedBy() {
:text="$t('menu.report_account', [`@${status.account.acct}`])"
icon="i-ri:flag-2-line"
:command="command"
- @click="openReportDialog(status.account, status)"
+ @click="report"
/>
diff --git a/components/status/StatusCard.vue b/components/status/StatusCard.vue
index ab8da4964e..6e68f7e089 100644
--- a/components/status/StatusCard.vue
+++ b/components/status/StatusCard.vue
@@ -9,6 +9,7 @@ const props = withDefaults(
hover?: boolean
inNotification?: boolean
isPreview?: boolean
+ feedName?: string
// If we know the prev and next status in the timeline, we can simplify the card
older?: mastodon.v1.Status
@@ -171,7 +172,7 @@ const forceShow = ref(false)
-
+
@@ -183,7 +184,7 @@ const forceShow = ref(false)
:in-notification="inNotification"
mb2 :class="{ 'mt-2 mb1': isDM }"
/>
-
+
diff --git a/components/timeline/TimelineBookmarks.vue b/components/timeline/TimelineBookmarks.vue
index cdab6a354b..63adb1b740 100644
--- a/components/timeline/TimelineBookmarks.vue
+++ b/components/timeline/TimelineBookmarks.vue
@@ -3,5 +3,5 @@ const paginator = useMastoClient().v1.bookmarks.list()
-
+
diff --git a/components/timeline/TimelineFavourites.vue b/components/timeline/TimelineFavourites.vue
index 346b8c8bdc..bfe084720c 100644
--- a/components/timeline/TimelineFavourites.vue
+++ b/components/timeline/TimelineFavourites.vue
@@ -3,5 +3,5 @@ const paginator = useMastoClient().v1.favourites.list()
-
+
diff --git a/components/timeline/TimelineHome.vue b/components/timeline/TimelineHome.vue
index 05cff3225f..80bcf30ef1 100644
--- a/components/timeline/TimelineHome.vue
+++ b/components/timeline/TimelineHome.vue
@@ -18,6 +18,6 @@ function onPublish(status) {
diff --git a/components/timeline/TimelinePaginator.vue b/components/timeline/TimelinePaginator.vue
index d528b117d0..358d0cbd93 100644
--- a/components/timeline/TimelinePaginator.vue
+++ b/components/timeline/TimelinePaginator.vue
@@ -13,6 +13,7 @@ const { paginator, stream, account, buffer = 10, endMessage = true } = definePro
preprocess?: (items: mastodon.v1.Status[]) => mastodon.v1.Status[]
buffer?: number
endMessage?: boolean | string
+ feedName?: string
}>()
const commonPaginator = ref(null)
@@ -43,11 +44,11 @@ const showOriginSite = $computed(() =>
-
+
-
+
diff --git a/components/timeline/TimelinePublic.vue b/components/timeline/TimelinePublic.vue
index ec4fac8508..426d8d3f0a 100644
--- a/components/timeline/TimelinePublic.vue
+++ b/components/timeline/TimelinePublic.vue
@@ -10,6 +10,6 @@ function reorderAndFilter(items: mastodon.v1.Status[]) {
-
+
diff --git a/components/timeline/TimelinePublicLocal.vue b/components/timeline/TimelinePublicLocal.vue
index 50d1e15088..43f844f41b 100644
--- a/components/timeline/TimelinePublicLocal.vue
+++ b/components/timeline/TimelinePublicLocal.vue
@@ -5,6 +5,6 @@ const stream = useStreaming(client => client.v1.stream.streamCommunityTimeline()
-
+
diff --git a/pages/[[server]]/@[account]/index/index.vue b/pages/[[server]]/@[account]/index/index.vue
index b909ca2de8..866365c104 100644
--- a/pages/[[server]]/@[account]/index/index.vue
+++ b/pages/[[server]]/@[account]/index/index.vue
@@ -26,6 +26,6 @@ if (account) {
diff --git a/telemetry/engagementPostEvents.js b/telemetry/engagementPostEvents.js
index 6c61be53bd..b40d7f1273 100644
--- a/telemetry/engagementPostEvents.js
+++ b/telemetry/engagementPostEvents.js
@@ -1,4 +1,180 @@
export const postEvents = {
+ // Standalone post
+ 'post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'post.report': {
+ engagement_type: 'general',
+ },
+ // Account feed
+ 'account.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'account.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'account.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'account.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'account.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'account.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'account.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'account.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Home feed
+ 'home.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'home.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'home.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'home.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'home.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'home.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'home.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'home.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Favorites feed
+ 'favorites.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'favorites.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'favorites.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'favorites.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'favorites.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'favorites.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'favorites.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'favorites.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Bookmarks feed
+ 'bookmarks.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'bookmarks.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'bookmarks.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'bookmarks.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'bookmarks.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'bookmarks.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'bookmarks.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'bookmarks.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Local feed
+ 'local.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'local.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'local.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'local.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'local.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'local.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'local.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'local.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Federated feed
+ 'federated.feed.post.open-reply': {
+ engagement_type: 'reply',
+ },
+ 'federated.feed.post.reblog': {
+ engagement_type: 'boost',
+ },
+ 'federated.feed.post.unreblog': {
+ engagement_type: 'general',
+ },
+ 'federated.feed.post.favourite': {
+ engagement_type: 'favourite',
+ },
+ 'federated.feed.post.unfavourite': {
+ engagement_type: 'general',
+ },
+ 'federated.feed.post.bookmark': {
+ engagement_type: 'bookmark',
+ },
+ 'federated.feed.post.unbookmark': {
+ engagement_type: 'general',
+ },
+ 'federated.feed.post.report': {
+ engagement_type: 'general',
+ },
+ // Other
'post.link.tap': {
engagement_type: 'general',
},