---
title: "Comments & Reactions"
canonical_url: "https://apidocs.sportradar.com/resources/virtual-stadium/docs/sdk/centralHub/commentsAndReactions"
markdown_url: "https://apidocs.sportradar.com/resources/virtual-stadium/docs/sdk/centralHub/commentsAndReactions.md"
last_updated: "2026-04-16T10:19:11Z"
---

# Comments & Reactions

Engage with shared bets through threaded comments and reactions.

## Commenting on Bet Shares

Use `CentralHubCommentingProvider` to load comments for a bet share, add new replies, and mark replies as read.

**Android**

```kotlin
class CommentingViewModel : ViewModel(), KoinComponent {

    private val commentingProvider: CentralHubCommentingProvider = get()

    val commentingState = commentingProvider.state

    suspend fun loadComments(betShare: BetShare) {
        commentingProvider.loadData(betShare)
    }

    suspend fun addComment(
        betShareId: String,
        message: String,
    ) {
        commentingProvider.commentBetShare(
            betShareId = betShareId,
            messageReply = message,
            onSuccess = { /* Comment posted */ },
            onFailure = { error -> /* Handle error */ },
        )
    }

    suspend fun markAsRead(betShareId: String) {
        commentingProvider.markCommentsAsRead(betShareId)
    }
}
```

**iOS**

```swift
class CommentingViewModel: ObservableObject {

    private let commentingProvider =
        KoinHelper().getCentralHubCommentingProvider()

    @Published var commentingState: CommentingState?

    init() {
        subscribeToComments()
    }

    private func subscribeToComments() {
        commentingProvider.state.subscribe { [weak self] state in
            self?.commentingState = state
        }
    }

    func loadComments(betShare: BetShare) async {
        await commentingProvider.loadData(betShare: betShare)
    }

    func addComment(
        betShareId: String,
        message: String
    ) async {
        await commentingProvider.commentBetShare(
            betShareId: betShareId,
            messageReply: message,
            onSuccess: { /* Comment posted */ },
            onFailure: { error in /* Handle error */ }
        )
    }
}
```

## Adding Reactions

`CentralHubReactionsManager` toggles reactions on bet shares and comments.

Use the reaction event stream to update your UI when reaction counts or user reaction state change.

**Android**

```kotlin
class ReactionsViewModel : ViewModel(), KoinComponent {

    private val reactionsManager: CentralHubReactionsManager = get()

    val reactionEvents = reactionsManager.reactionEvents

    suspend fun toggleReaction(
        betShare: BetShare,
        reactionType: ReactionType,
    ) {
        reactionsManager.toggleReactionBetShare(
            betShare = betShare,
            reactionType = reactionType,
            onSuccess = { /* Reaction toggled */ },
            onFailure = { error -> /* Handle error */ },
        )
    }

    suspend fun reactToComment(
        reply: MessageReply,
        reactionType: ReactionType,
    ) {
        reactionsManager.toggleReactionComment(
            reply = reply,
            reactionType = reactionType,
            onSuccess = { /* Reaction toggled */ },
            onFailure = { error -> /* Handle error */ },
        )
    }
}
```

**iOS**

```swift
class ReactionsViewModel: ObservableObject {

    private let reactionsManager =
        KoinHelper().getCentralHubReactionsManager()

    func toggleReaction(
        betShare: BetShare,
        reactionType: ReactionType
    ) async {
        await reactionsManager.toggleReactionBetShare(
            betShare: betShare,
            reactionType: reactionType,
            onSuccess: { /* Reaction toggled */ },
            onFailure: { error in /* Handle error */ }
        )
    }
}
```

## Data Models

### CommentingState

```kotlin
data class CommentingState(
    val betShare: BetShare?,
    val loadingStatus: LoadingStatus,
    val nextPageLoadingStatus: LoadingStatus,
    val allDataLoaded: Boolean,
)
```

## Related Topics

- [Bet Sharing](https://apidocs.sportradar.com/resources/virtual-stadium/docs/sdk/centralHub/betSharing.md) - View and create shared bets.
- [Notifications](https://apidocs.sportradar.com/resources/virtual-stadium/docs/sdk/centralHub/notifications.md) - Show comment and reaction activity updates.
