Skip to content

Releases: flyerhq/flutter_chat_ui

2.0.0-dev.6

18 Feb 22:58
Compare
Choose a tag to compare
2.0.0-dev.6 Pre-release
Pre-release

⚠️ Breaking changes ⚠️

  • Require Flutter 3.29 and Dart 3.7

🐛 Bug Fixes

  • Temporarily disabled blur effect for chat input due to a crash in Flutter 3.29 (will be re-enabled once fix is available in stable)
  • Fixed a warning that occurred when removing all messages simultaneously

2.0.0-dev.5

16 Feb 21:13
cfd69a5
Compare
Choose a tag to compare
2.0.0-dev.5 Pre-release
Pre-release

⚠️ Breaking changes ⚠️

  • Changed signature of chatMessageBuilder to include isRemoved and groupStatus parameters.
  • Changed imageUrl to imageSource for the User model. Change is necessary to show that not only remote URLs are supported but also local assets.
  • messageGroupingTimeoutInSeconds is now set via chatAnimatedListBuilder.

⚠️ New features ⚠️

  • Add hintText to the ChatInput widget.
  • Added avatar support. Check local example for details.
  • chatMessageBuilder now returns isRemoved and groupStatus parameters. Group status returns information about message's position in the group. isRemoved is true if message is removed.
  • Added leadingWidget and trailingWidget to the ChatMessage widget.

2.0.0-dev.4

04 Feb 00:20
Compare
Choose a tag to compare
2.0.0-dev.4 Pre-release
Pre-release

⚠️ Breaking Changes ⚠️

👥 User Management:

  • Replaced user parameter with currentUserId (String) and resolveUser function
  • Users are now referenced by ID, with async user data resolution through resolveUser

⚙️ API Changes:

  • Renamed ChatInputHeightNotifier.updateHeight() to setHeight()
  • Scroll controller management moved to individual list widgets that you can render via builders: chatAnimatedListBuilder: ... return ChatAnimatedList(scrollController: _scrollController)
  • Text editing controller now configured through ChatInput widget

🔄 Core Changes:

  • author (type User) is replaced with authorId (type String) for simpler user management
  • All DateTime properties now use milliseconds instead of microseconds for JSON serialization

🎨 Theme Simplification:
Theme has been streamlined to 3 key parameters:

  1. colors - Uses Material 3 semantic names (e.g. primary, onPrimary, secondary) making it easy to apply color schemes
  2. typography - Follows Flutter's TextTheme semantic naming conventions
  3. shape - Controls border radius of all messages (rounded vs square messages)

✨ New Features:

👨‍💻 Chat Experience:

  • Added typing indicator support
  • Background image customization
  • Improved scroll-to-bottom performance

📜 List Behavior Controls:

  • shouldScrollToEndWhenSendingMessage: Auto-scroll on message send
  • shouldScrollToEndWhenAtBottom: Auto-scroll when at bottom
  • initialScrollToEndMode: Controls initial scroll behavior for non-reversed list. Because list is not reversed, you must scroll to the end to see latest messages. Available options:
    • none: No automatic scrolling, do nothing
    • animate: Smooth scroll to end
    • jump: Instant scroll to end (wrong position or UI jumps are expected since Flutter does not know exact size of the list)

🎯 Improvements:

  • Improved AI agent scrolling behavior example with message pinned to the top of the viewport
  • Unified API between reversed and non-reversed lists
  • Added pagination example

2.0.0-dev.3

02 Jan 22:29
Compare
Choose a tag to compare
2.0.0-dev.3 Pre-release
Pre-release

⚠️ Contains breaking changes ⚠️

  • 🎉 Emoji-only messages: added support for text messages containing only emojis, displayed without a bubble.
  • 🧩 Message grouping: added support for grouping messages for a cleaner chat display.
  • 🐛 Bug fix: fixed an issue where timeouts were not being cleared properly.
  • 🔧 Chat builders: chat message builders now include the message index in their parameters.
  • 📱 Safe area: added safe area support for reversed lists.

2.0.0-dev.2

28 Dec 23:35
Compare
Choose a tag to compare
2.0.0-dev.2 Pre-release
Pre-release

⚠️ Contains breaking changes ⚠️

⚠️ Requires Flutter ^3.19 and Dart ^3.3 ⚠️

🖼️ API Example

  • Added support for image uploads
  • Added a web sockets connection status indicator with reconnection logic examples

🔗 cross-cache

  • Added new methods:
    • delete(String key) – delete entries
    • updateKey(String key, String newKey) – rename keys while keeping the data
  • CustomNetworkImage is now CachedNetworkImage and has been moved to the cross-cache package
  • Exposed the set method for better flexibility

💬 flutter-chat-core

  • Added customMessageBuilder for building custom messages
  • Added overlay parameter to ImageMessage
  • Themes:
    • Added ImageMessageTheme (replacing imagePlaceholderColor)
    • Updated InputTheme (adding textFieldColor)
    • Updated ScrollToBottomTheme
    • Updated TextMessageTheme
  • Added UploadProgressMixin for handling upload progress tracking

📝 flutter-chat-ui

  • Automatically handles the safe area (optional, enabled by default)
  • Scrolls content up when the keyboard is opened
  • Added support for an action bar above the input field (with example)
  • Exported ChatInputHeightNotifier
  • Enhanced ChatAnimatedList with:
    • topSliver and bottomSliver for custom widgets at the top or bottom of the chat (both scrollable)

📸 flyer-chat-image-message

  • Theme now derives from imageMessageTheme
  • Added an upload progress indicator
  • Fixed default constraints
  • Added an optional overlay to images

2.0.0-dev.1

26 Oct 20:05
Compare
Choose a tag to compare
2.0.0-dev.1 Pre-release
Pre-release
  • 🚀 Exciting pre-release of v2! This version is a complete rewrite, focusing on extensibility, customizability, performance, and stability. 🛠️
  • ⚠️ Some features are still in progress, so use with caution. However, I've aimed to make this version more practical for real-world applications. 💼
  • 🌟 New examples include integrations with REST API and AI (Gemini), with more to come! 🤖
  • 💻 Works seamlessly across all platforms. 📱🖥️
  • 📚 Documentation and migration guide are in the works and will be available in the coming weeks.
  • 🗓️ A public backlog for the new version is planned to keep everyone informed about upcoming features.
  • 🔔 Stay tuned by following our GitHub for updates!
  • 🙏 If you have a chance to test v2 or review the code, I'd love to hear your thoughts! 💬

v1.6.15

12 Aug 06:42
Compare
Choose a tag to compare
  • Last release of v1 and v2 is replacing it on main branch soon.
  • Updated markdown matchers to be bold (double asterisk), italic (double underscore), linethrough (double tilde) and code (single backtick).
  • Removed PopScope since new api requires Flutter v3.22 and I want to still support older versions. Let me know if it introduces breaking behaviour.
  • Added support for AssetImage (uri starts with assets/). Thanks @thomers for the PR!

v1.6.14

09 Jun 17:03
Compare
Choose a tag to compare
  • While v2 is still in the works (unexpected blockers, see GitHub for progress) releasing a small patch update with improvements.
  • Added optional scroll preferPosition to scrollController.scrollToIndex. Thanks @chdo002 for the PR!
  • Removed isComposingRangeValid check from the input to hopefully fix send button that does not appear.
  • Added usesSafeArea option to the inputOptions to be able to remove safe area backed inside the input.

v1.6.13

19 May 09:13
Compare
Choose a tag to compare
  • While v2 is still in the works (unexpected blockers, see GitHub for progress) releasing a small patch update with improvements.
  • Potentially breaking: bumped dependencies, but I used ranges (>= and <) so don't expect any problems. Please raise an issue if some change breaks your project.
  • Added support for overriding the bubbleMargin property using ChatTheme. Thanks @ishchhabra for the PR!
  • Added localisation support to the typing indicator which was hardcoded english only previously. Thanks @longnh2k1 for raising the issue!

v1.6.12

05 Feb 21:33
Compare
Choose a tag to compare
  • Remove defaultBubbleMessage from the bubbleBuilder as it breaks compatibility. If you need this please use previous release, this is the only change here. Next should be v2.0.0 preview.