nolanlawson / pinafore

Alternative web client for Mastodon (UNMAINTAINED)
https://pinafore.social
GNU Affero General Public License v3.0
1.02k stars 175 forks source link

Render Pleroma's emoji reactions #1739

Open amyspark opened 4 years ago

amyspark commented 4 years ago

Hi,

Pleroma now exposes emoji reactions via the pleroma object of a MastoAPI response. Would it be possible to add support for them, both in each toot and in the Notifications tab?

nolanlawson commented 4 years ago

Thanks for reaching out! Pleroma support is not a # 1 priority, but if it's not too difficult to detect support for this feature and gracefully degrade on non-Pleroma instances, then it seems like a reasonable feature to add.

Heartade commented 1 year ago

Bumping this up because I'm planning on using Pinafore for my Pleroma instance!

Detecting the feature is simple:

let features = await database.getInstanceInfo(instanceName)["pleroma"]?.["meta"]?.["features"] ?? []
if(features.includes("pleroma_emoji_reactions")) {
  // Pleroma's unicode emoji reactions
  if(features.include("custom_emoji_reactions")) {
    // Akkoma's custom emoji reactions
  }
}

would be enough for detecting feature support.

The API endpoints are also straightforward, but UI wouldn't be as trivial. A user can react to a status with multiple emojis, and there are so many emojis out there. We would have to handle overflow in the supposed 'reactions' pane in the status footer, and a whole new dialog for showing who reacted with what would be necessary.