diff --git a/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx b/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx index 58e4b828..b71c48b3 100644 --- a/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx +++ b/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx @@ -19,43 +19,43 @@ The changes will be listed by package and a concise changelog will be followed b ### Changelog of `stream_chat_flutter` -#### Breaking Changes from 1.5.4 +#### 🛑️ Breaking Changes from 1.5.4 -*Migrate this package to null safety +* Migrate this package to null safety -*Renamed ChannelImage to ChannelAvatar +* Renamed ChannelImage to ChannelAvatar -*Updated StreamChatThemeData.reactionIcons to accept custom builder +* Updated StreamChatThemeData.reactionIcons to accept custom builder -*Renamed ColorTheme properties to reflect the purpose of the colors +* Renamed ColorTheme properties to reflect the purpose of the colors - *ColorTheme.black -> ColorTheme.textHighEmphasis - *ColorTheme.grey -> ColorTheme.textLowEmphasis - *ColorTheme.greyGainsboro -> ColorTheme.disabled - *ColorTheme.greyWhisper -> ColorTheme.borders - *ColorTheme.whiteSmoke -> ColorTheme.inputBg - *ColorTheme.whiteSnow -> ColorTheme.appBg - *ColorTheme.white -> ColorTheme.barsBg - *ColorTheme.blueAlice -> ColorTheme.linkBg - *ColorTheme.accentBlue -> ColorTheme.accentPrimary - *ColorTheme.accentRed -> ColorTheme.accentError - *ColorTheme.accentGreen -> ColorTheme.accentInfo + * ColorTheme.black -> ColorTheme.textHighEmphasis + * ColorTheme.grey -> ColorTheme.textLowEmphasis + * ColorTheme.greyGainsboro -> ColorTheme.disabled + * ColorTheme.greyWhisper -> ColorTheme.borders + * ColorTheme.whiteSmoke -> ColorTheme.inputBg + * ColorTheme.whiteSnow -> ColorTheme.appBg + * ColorTheme.white -> ColorTheme.barsBg + * ColorTheme.blueAlice -> ColorTheme.linkBg + * ColorTheme.accentBlue -> ColorTheme.accentPrimary + * ColorTheme.accentRed -> ColorTheme.accentError + * ColorTheme.accentGreen -> ColorTheme.accentInfo -*ChannelListCore options property is removed in favor of individual properties +* ChannelListCore options property is removed in favor of individual properties - *options.state -> bool state - *options.watch -> bool watch - *options.presence -> bool presence + *options.state -> bool state + *options.watch -> bool watch + *options.presence -> bool presence -*UserListView options property is removed in favor of individual properties +* UserListView options property is removed in favor of individual properties - *options.presence -> bool presence + *options.presence -> bool presence -*Renamed ImageHeader to GalleryHeader +* Renamed ImageHeader to GalleryHeader -*Renamed ImageFooter to GalleryFooter +* Renamed ImageFooter to GalleryFooter -*MessageBuilder and ParentMessageBuilder signature is now +* MessageBuilder and ParentMessageBuilder signature is now ``` typedef MessageBuilder = Widget Function( @@ -117,17 +117,17 @@ remedy the issue: 2) The new version comes with revised color names since the previous names do not suit light/dark mode nomenclature. Make sure any old colors used from theme are changed over to the new theme color names: - *ColorTheme.black -> ColorTheme.textHighEmphasis - *ColorTheme.grey -> ColorTheme.textLowEmphasis - *ColorTheme.greyGainsboro -> ColorTheme.disabled - *ColorTheme.greyWhisper -> ColorTheme.borders - *ColorTheme.whiteSmoke -> ColorTheme.inputBg - *ColorTheme.whiteSnow -> ColorTheme.appBg - *ColorTheme.white -> ColorTheme.barsBg - *ColorTheme.blueAlice -> ColorTheme.linkBg - *ColorTheme.accentBlue -> ColorTheme.accentPrimary - *ColorTheme.accentRed -> ColorTheme.accentError - *ColorTheme.accentGreen -> ColorTheme.accentInfo + * ColorTheme.black -> ColorTheme.textHighEmphasis + * ColorTheme.grey -> ColorTheme.textLowEmphasis + * ColorTheme.greyGainsboro -> ColorTheme.disabled + * ColorTheme.greyWhisper -> ColorTheme.borders + * ColorTheme.whiteSmoke -> ColorTheme.inputBg + * ColorTheme.whiteSnow -> ColorTheme.appBg + * ColorTheme.white -> ColorTheme.barsBg + * ColorTheme.blueAlice -> ColorTheme.linkBg + * ColorTheme.accentBlue -> ColorTheme.accentPrimary + * ColorTheme.accentRed -> ColorTheme.accentError + * ColorTheme.accentGreen -> ColorTheme.accentInfo 3) We decided to make messages easier to customize and now supply the default implementation of the messages in the builder - so you can now customize a single parameter without having to redo the @@ -143,4 +143,97 @@ typedef MessageBuilder = Widget Function( ``` Use `defaultMessageWidget.copyWith()` to edit any properties to make it much simpler to tweak the -default implementation. \ No newline at end of file +default implementation. + +### Changelog of `stream_chat_flutter_core` + +#### 🛑️ Breaking Changes from 1.5.3 + +* Migrate this package to null safety +* channelsBloc.queryChannels(), ChannelListCore options param/property is removed in favor of individual params/properties + * options.state -> bool state + * options.watch -> bool watch + * options.presence -> bool presence +* usersBloc.queryUsers(), UserListCore options param/property is removed in favor of individual params/properties + * options.presence -> bool presence + +#### ✅ Added + +* Monitor connection using connectivity_plus package + +#### 🐞 Fixed + +* Minor fixes +* Performance improvements + +### Migrating to 2.0 for `stream_chat_flutter_core` + +If you are migrating your full Flutter project to null-safety, first make sure you follow the +instructions from the [official Null Safety migration guide](https://dart.dev/null-safety/migration-guide). +::: + +To migrate to v2.0 for `stream_chat_flutter_core`, first change the version of the package to the latest +null-safe version. + +```yaml +dependencies: + stream_chat_flutter_core: ^2.0.0 +``` + +Upon doing this, all breaking changes from the package will take immediate effect. Here are steps to +remedy the issue: + +:::note +The major changes in `stream_chat_flutter_core` consist of changing over from a map full of options +to a more type safe and sound approach by changing over to explicit parameters. +::: + +1) Change over Core widget implementations by using the explicit parameters instead of the options map. +Use these explicit parameters in the widget constructor instead of the option keys: + + * options.state -> bool state + * options.watch -> bool watch + * options.presence -> bool presence + +2) Change over query calls in the BLoCs in the same way (change from options map to explicit parameters +in the constructor) + +### Changelog of `stream_chat` + +#### 🛑️ Breaking Changes from 1.5.3 + +* Migrate this package to null safety +* ConnectUserWithProvider now requires tokenProvider as a required param. (Removed from the constructor) +* client.disconnect() is now divided into two different functions +* client.closeConnection() -> for closing user websocket connection. +* client.disconnectUser() -> for disconnecting user and resetting client state. +* client.devToken() now returns a Token model instead of String. +* ApiError is removed in favor of StreamChatError +* StreamChatError -> parent type for all the stream errors. +* StreamWebSocketError -> for user websocket related errors. +* StreamChatNetworkError -> for network related errors. +* client.queryChannels(), channel.query() options param is removed in favor of individual params +* option.state -> bool state +* option.watch -> bool watch +* option.presence -> bool presence +* client.queryUsers() options param is removed in favor of individual params +* option.presence -> bool presence +* Migrate this package to null safety +* Added typed filters + +#### 🐞 Fixed + +* #369: Client does not return without internet connection +* several minor fixes +* performance improvements + +#### ✅ Added + +* New Location enum is introduced for easily changing the client location/baseUrl. +* New client.openConnection() and client.closeConnection() is introduced to connect/disconnect user ws connection. +* New client.partialUpdateMessage and channel.partialUpdateMessage methods +* connectWebSocket parameter in connect user calls to use the client in "connection-less" mode. + +#### 🔄 Changed + +* baseURL is now deprecated in favor of using Location to change data location.