FeatureRequestDetailSheet

fun FeatureRequestDetailSheet(client: FeedbackClient, item: FeatureRequestItem, userToken: String, onDismiss: () -> Unit, onVote: () -> Unit, voting: Boolean = false, onOpenProfile: (String) -> Unit = {})(source)

Interactive Modal Bottom Sheet displaying comprehensive feature request details and comment discussions.

Provides a dedicated detail view showing:

  • Proposal title, rich inline Markdown description, and stage badge

  • Requester identity with clickable avatar linking to UserProfileSheet

  • Live upvote toggle pill (VotePill)

  • Chronological list of user comments with avatars and threaded @reply indicators

  • Comment input field with support for direct comments and targeted replies

Example Integration

@Composable
fun RequestCardWithDetail(
client: FeedbackClient,
item: FeatureRequestItem,
userToken: String
) {
var showDetail by remember { mutableStateOf(false) }

Card(modifier = Modifier.clickable { showDetail = true }) {
Text(item.title)
}

if (showDetail) {
FeatureRequestDetailSheet(
client = client,
item = item,
userToken = userToken,
onDismiss = { showDetail = false },
onVote = { /* toggle vote */},
onOpenProfile = { clerkId -> /* open user profile */}
)
}
}

Parameters

client

Shared FeedbackClient instance used for comments and vote actions.

item

The target FeatureRequestItem being viewed.

userToken

Stable anonymous user token from UserTokenStore used to authenticate comments and votes.

onDismiss

Callback invoked when the user dismisses the bottom sheet.

onVote

Callback invoked when the user taps the upvote button.

voting

Whether an upvote network request is currently in flight for this item.

onOpenProfile

Callback invoked with a Clerk user ID when a user avatar or name is clicked.