Shared Components Library

To maintain a consistent UI and promote code reuse, we've created a library of common widgets, located in /lib/app/presentation/widgets/. This follows the principles outlined in UI_COMPONENT_BREAKDOWN.md.

Key Common Widgets

  • PrimaryButton / SecondaryButton: Standardized button components used across the app.

  • AnimatedBackground: A reusable background with gradient and subtle particle effects.

  • ProgressIndicators: The animated, multi-step progress bars used in the onboarding flow.

  • HeadingText / BodyText: Standardized text widgets that use the project's custom fonts and styles.

Key Feature-Specific Shared Widgets

  • VideoPlayerWidget: A reusable widget that wraps the RTCVideoView and displays loading and error states over the video feed.

  • ChatInputWidget: A reusable widget for the bottom input bar, containing the text field, send button, and voice recording button.

  • ConnectionStatusWidget: An overlay widget used in the AgentPage to show loading spinners and error messages with a retry button.

Example Usage (PrimaryButton):

Dart

Copy

PrimaryButton(
  text: 'Get Started',
  onPressed: () => print('Button pressed'),
  isLoading: false,
)

Last updated