Skip to main content

Feedback Screen

FeedbacksScreen() is the main UI entry point. It renders a complete feedback board inside your Compose hierarchy.

Signature

@Composable
fun FeedbacksScreen(
modifier: Modifier = Modifier,
onDismiss: () -> Unit,
)
ParameterTypeDescription
modifierModifierCompose modifier for sizing/padding
onDismiss() -> UnitCalled when user navigates back from the root screen

Screens

The composable manages its own internal navigation with three screens:

1. Feedback List

  • Shows feedback items in a vertical list with pull-to-refresh
  • All tab - every feedback item
  • Mine tab - feedback created by the current user
  • FAB to create new feedback
  • Vote buttons on each item

2. Feedback Details

  • Full feedback description
  • Threaded comments section
  • Vote on the feedback
  • Edit/delete own feedback (when status allows)
  • Reply to existing comments

3. Feedback Editor

  • Create new feedback (title + description)
  • Edit existing feedback (pre-populated fields)
  • Validation before submit

Back navigation is automatic:

  • Editor → Details / List
  • Details → List
  • List → onDismiss fires

The onDismiss lambda is only called when the user presses back on the root list screen. Your app handles this by popping its own navigation stack.

State handling

The screen handles loading, error, and empty states internally. No extra UI work needed.