Skip to content

UI/UX changes across#3714

Merged
aaravgarg merged 11 commits into
mainfrom
uiuxfixeshvhj
Dec 10, 2025
Merged

UI/UX changes across#3714
aaravgarg merged 11 commits into
mainfrom
uiuxfixeshvhj

Conversation

@aaravgarg
Copy link
Copy Markdown
Collaborator

  • Chat UI/UX overhaul — Major refactoring of the chat page (chat/page.dart) and AI message widget with improved styling, layout, and visual enhancements (+185 lines to ai_message.dart)
  • Improved processing/capture widget — Significant updates to processing_capture.dart (+234 lines) to enhance the recording/transcription status display
  • Added floating chat button — New chat button added across all pages for quick access to the chat feature
  • Bottom navigation bar blur effect — Introduced a blur/glass effect on the bottom navigation bar for a more modern aesthetic
  • Streamlined home page — Simplified the home page (home/page.dart) by removing ~100 lines and cleaning up the UI
  • Rounded conversation list items — Updated conversation list items styling to be more rounded for a softer visual appearance
  • Removed task integrations from settings — Cleaned up the settings drawer by removing task integration options (15 lines removed from settings_drawer.dart)

@aaravgarg aaravgarg merged commit 86e62eb into main Dec 10, 2025
1 check passed
@aaravgarg aaravgarg deleted the uiuxfixeshvhj branch December 10, 2025 19:19
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant set of UI/UX improvements across the application, including a major overhaul of the chat interface, a new processing/capture widget with a shimmer effect, and a floating chat button on all pages. The code is well-refactored in many places, such as extracting the tab change logic in the action items page.

My review focuses on a couple of areas for improvement. I've pointed out a potential state management issue in the new MessageActionBar widget that could lead to a stale UI. I've also identified duplicated logic for generating summaries, which could be refactored to improve maintainability.

Overall, these are great enhancements to the user experience.

void initState() {
super.initState();
_selectedNps = widget.currentNps;
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The _selectedNps state is initialized from widget.currentNps in initState, but it won't update if the parent widget rebuilds with a new currentNps value. This can lead to the UI showing a stale selection state. You should implement didUpdateWidget to handle updates to widget.currentNps and keep the state in sync.

  }

  @override
  void didUpdateWidget(covariant MessageActionBar oldWidget) {
    super.didUpdateWidget(oldWidget);
    if (widget.currentNps != oldWidget.currentNps) {
      setState(() {
        _selectedNps = widget.currentNps;
      });
    }
  }

Comment on lines +231 to +237
// Use app-generated summary if available, otherwise fall back to structured summary
final conversation = provider.conversation;
final summaryContent =
conversation.appResults.isNotEmpty && conversation.appResults[0].content.trim().isNotEmpty
? conversation.appResults[0].content.trim()
: conversation.structured.toString();
_copyContent(context, summaryContent);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This logic to determine the summary content is duplicated in conversation_detail/page.dart, conversation_detail/share.dart, and conversation_detail/widgets.dart. To improve maintainability and avoid potential inconsistencies, consider extracting this logic into a getter on the ServerConversation model. For example:

// In ServerConversation class
String get displaySummary {
  if (appResults.isNotEmpty && appResults[0].content.trim().isNotEmpty) {
    return appResults[0].content.trim();
  }
  return structured.toString();
}

Then you can simplify the call sites to use provider.conversation.displaySummary.

Glucksberg pushed a commit to Glucksberg/omi-local that referenced this pull request Apr 28, 2026
- Chat UI/UX overhaul — Major refactoring of the chat page
(chat/page.dart) and AI message widget with improved styling, layout,
and visual enhancements (+185 lines to ai_message.dart)
- Improved processing/capture widget — Significant updates to
processing_capture.dart (+234 lines) to enhance the
recording/transcription status display
- Added floating chat button — New chat button added across all pages
for quick access to the chat feature
- Bottom navigation bar blur effect — Introduced a blur/glass effect on
the bottom navigation bar for a more modern aesthetic
- Streamlined home page — Simplified the home page (home/page.dart) by
removing ~100 lines and cleaning up the UI
- Rounded conversation list items — Updated conversation list items
styling to be more rounded for a softer visual appearance
- Removed task integrations from settings — Cleaned up the settings
drawer by removing task integration options (15 lines removed from
settings_drawer.dart)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant