export const metadata = { title: "Reactions Extension", description: "The Reactions Extension allows users to react to posts with emojis", } # Reactions Extension The Reactions Extension allows users to express their reactions ("react") to posts with emojis. {{ className: 'lead' }} ## Federation User reactions are (like every other entity) federated to all followers, and can be displayed to clients depending on the privacy settings of the associated [Note](/entities/note). ## Entity Definition Must be `pub.versia:reactions/Reaction`. URI of the [User](/entities/user) that is reacting. URI of the [Note](/entities/note) attached to the reaction. Emoji content of reaction. May also be arbitrary text, or [Custom Emoji](/extensions/custom-emojis) if supported. Clients are encouraged to disfavour text in favour of emoji where possible. ```jsonc {{ title: "Example Entity" }} { "id": "6f27bc77-58ee-4c9b-b804-8cc1c1182fa9", "type": "pub.versia:reactions/Reaction", // [!code focus] "uri": "https://example.com/actions/6f27bc77-58ee-4c9b-b804-8cc1c1182fa9", "created_at": "2021-01-01T00:00:00.000Z", "author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe", // [!code focus:3] "object": "https://example.com/publications/f08a124e-fe90-439e-8be4-15a428a72a19", "content": "😀", } ``` ## Extensions to Note The Reactions Extension extends the [Note](/entities/note) entity with the following fields: URI to a [URI Collection](/structures/collection#uri-collection) of the [Reactions](#entity-definition) attached to the note. ```jsonc {{ title: "Example Note" }} { "id": "01902e09-0f8b-72de-8ee3-9afc0cf5eae1", "type": "Note", // [!code focus] "uri": "https://versia.social/notes/01902e09-0f8b-72de-8ee3-9afc0cf5eae1", "created_at": "2024-06-19T01:07:44.139Z", "author": "https://versia.social/users/018eb863-753f-76ff-83d6-fd590de7740a", "category": "microblog", "content": { "text/plain": { "content": "Bababooey." } }, "extensions": { // [!code focus:5] "pub.versia:reactions": { "reactions": "https://versia.social/notes/01902e09-0f8b-72de-8ee3-9afc0cf5eae1/reactions" } }, "group": "public", "is_sensitive": false, "mentions": [], } ``` ## Interaction Types This section only applies to implementors of the [Interaction Controls Extension](/extensions/interaction-controls). This extension registers the following interaction types: - `pub.versia:reactions#React`, for adding a Reaction to a Note.