diff --git a/docusaurus/docs/Flutter/guides/adding_custom_attachments.mdx b/docusaurus/docs/Flutter/guides/adding_custom_attachments.mdx index fb1f7bbe..0c427713 100644 --- a/docusaurus/docs/Flutter/guides/adding_custom_attachments.mdx +++ b/docusaurus/docs/Flutter/guides/adding_custom_attachments.mdx @@ -1,6 +1,6 @@ --- id: adding_custom_attachments -sidebar_position: 3 +sidebar_position: 4 title: Adding Custom Attachments --- diff --git a/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx b/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx new file mode 100644 index 00000000..58e4b828 --- /dev/null +++ b/docusaurus/docs/Flutter/guides/migration_guide_2_0.mdx @@ -0,0 +1,146 @@ +--- +id: mig_guide_2_0 +sidebar_position: 5 +title: Migrating to 2.0 (Null-safety) +--- + +A Migration Guide For Switching To v2.0 Of The Flutter SDK + +### Overview + +v2.0 of the Stream Chat Flutter SDK brings along several changes - primarily making the SDK null-safe. +Null safety allows your apps to run faster, with fewer errors, and with less code. + +Check [this link](https://flutter.dev/docs/null-safety) for more about Null Safety in Flutter. + +This guide is intended to enumerate and better explain the changes in the SDK. + +The changes will be listed by package and a concise changelog will be followed by more info. + +### Changelog of `stream_chat_flutter` + +#### Breaking Changes from 1.5.4 + +*Migrate this package to null safety + +*Renamed ChannelImage to ChannelAvatar + +*Updated StreamChatThemeData.reactionIcons to accept custom builder + +*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 + +*ChannelListCore options property is removed in favor of individual properties + + *options.state -> bool state + *options.watch -> bool watch + *options.presence -> bool presence + +*UserListView options property is removed in favor of individual properties + + *options.presence -> bool presence + +*Renamed ImageHeader to GalleryHeader + +*Renamed ImageFooter to GalleryFooter + +*MessageBuilder and ParentMessageBuilder signature is now + +``` +typedef MessageBuilder = Widget Function( + BuildContext, + MessageDetails, + List, + MessageWidget defaultMessageWidget, + ); +``` + +The last parameter is the default MessageWidget +You can call .copyWith to customize just a subset of properties + +#### ✅ Added + +Added video compress options (frame and quality) to MessageInput +TypingIndicator now has a property called parentId to show typing indicator specific to threads +#493: add support for messageListView header/footer +MessageWidget accepts a userAvatarBuilder +Added pinMessage ui support +Added MessageListView.threadSeparatorBuilder property +Added MessageInput.onError property to allow error handling +Added GalleryHeader/GalleryFooter theme classes + +#### 🐞 Fixed + +#483: Keyboard covers input text box when editing +message +Modals are shown using the nearest Navigator to make using the SDK easier in a nested navigator use case +#484: messages don't update without a reload +MessageListView not rendering if the user is not a member of the channel +Fix MessageInput overflow when there are no actions +Minor fixes and improvements + +### Migrating to 2.0 for `stream_chat_flutter` + +:::note +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`, first change the version of the package to the latest +null-safe version. + +```yaml +dependencies: + stream_chat_flutter: ^2.0.0 +``` + +Upon doing this, all breaking changes from the package will take immediate effect. Here are steps to +remedy the issue: + +1) Replace the offending class names with the revised class names + + * ChannelImage -> ChannelAvatar + * ImageHeader -> GalleryHeader + * ImageFooter -> GalleryFooter + +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 + +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 +entire implementation. Please reform your builders to take into account the new format: + +``` +typedef MessageBuilder = Widget Function( + BuildContext, + MessageDetails, + List, + MessageWidget defaultMessageWidget, + ); +``` + +Use `defaultMessageWidget.copyWith()` to edit any properties to make it much simpler to tweak the +default implementation. \ No newline at end of file