Skip to content

Commit 5aa1043

Browse files
committed
update migration docs with latest changes
1 parent 29fc127 commit 5aa1043

18 files changed

Lines changed: 1499 additions & 723 deletions

migrations/redesign/README.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -118,23 +118,24 @@ class MyCustomButton extends StatelessWidget {
118118

119119
## Components
120120

121-
| Component | Migration Guide |
122-
|-----------|-----------------|
123-
| Stream Avatar | [stream_avatar.md](stream_avatar.md) |
124-
| Channel List Item | [channel_list_item.md](channel_list_item.md) |
125-
| Message Actions | [message_actions.md](message_actions.md) |
126-
| Reaction Picker / Reactions | [reaction_picker.md](reaction_picker.md) |
127-
| Image CDN & Thumbnails | [image_cdn.md](image_cdn.md) |
128-
| Message Widget & Message List | [message_widget.md](message_widget.md) |
129-
| Message Composer | [message_composer.md](message_composer.md) |
130-
| Unread Indicator | [unread_indicator.md](unread_indicator.md) |
131-
| Unread Indicator Button | [unread_indicator_button.md](unread_indicator_button.md) |
132-
| Reaction List & Detail Sheet | [reaction_list.md](reaction_list.md) |
133-
| Audio Waveform Theme | [audio_theme.md](audio_theme.md) |
134-
| Attachments & Polls | [attachments_and_polls.md](attachments_and_polls.md) |
135-
| Media Viewer (Full-screen Media) | [media_viewer.md](media_viewer.md) |
136-
| Headers, Icons & Configuration | [headers_and_icons.md](headers_and_icons.md) |
137-
| Localizations | [localizations.md](localizations.md) |
121+
| Component | Migration Guide |
122+
| -------------------------------- | -------------------------------------------------------- |
123+
| Stream Avatar | [stream_avatar.md](stream_avatar.md) |
124+
| Channel List Item | [channel_list_item.md](channel_list_item.md) |
125+
| Message Actions | [message_actions.md](message_actions.md) |
126+
| Reaction Picker / Reactions | [reaction_picker.md](reaction_picker.md) |
127+
| Image CDN & Thumbnails | [image_cdn.md](image_cdn.md) |
128+
| Message Widget | [message_widget.md](message_widget.md) |
129+
| Message List | [message_list.md](message_list.md) |
130+
| Message Composer | [message_composer.md](message_composer.md) |
131+
| Unread Indicator | [unread_indicator.md](unread_indicator.md) |
132+
| Unread Indicator Button | [unread_indicator_button.md](unread_indicator_button.md) |
133+
| Reaction List & Detail Sheet | [reaction_list.md](reaction_list.md) |
134+
| Audio Waveform Theme | [audio_theme.md](audio_theme.md) |
135+
| Attachments & Polls | [attachments_and_polls.md](attachments_and_polls.md) |
136+
| Media Viewer (Full-screen Media) | [media_viewer.md](media_viewer.md) |
137+
| Headers, Icons & Configuration | [headers_and_icons.md](headers_and_icons.md) |
138+
| Localizations | [localizations.md](localizations.md) |
138139

139140
## Need Help?
140141

migrations/redesign/attachments_and_polls.md

Lines changed: 123 additions & 55 deletions
Large diffs are not rendered by default.

migrations/redesign/audio_theme.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ The audio waveform theme types and the `StreamAudioWaveform` / `StreamAudioWavef
2121

2222
## What Changed
2323

24-
| Item | Before | After |
25-
|------|--------|-------|
26-
| `StreamAudioWaveformTheme` | Defined in `stream_chat_flutter` | Moved to `stream_core_flutter`; no longer in `StreamChatThemeData` |
27-
| `StreamAudioWaveformSliderTheme` | Defined in `stream_chat_flutter` | Moved to `stream_core_flutter`; no longer in `StreamChatThemeData` |
28-
| `StreamAudioWaveform` widget | In `stream_chat_flutter` | Re-exported from `stream_core_flutter` via `stream_chat_flutter` |
29-
| `StreamAudioWaveformSlider` widget | In `stream_chat_flutter` | Re-exported from `stream_core_flutter` via `stream_chat_flutter` |
30-
| Theming entry point | `StreamChatThemeData.audioWaveformTheme` / `.audioWaveformSliderTheme` | `StreamTheme` (via `MaterialApp.theme.extensions`) |
24+
| Item | Before | After |
25+
| ---------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------ |
26+
| `StreamAudioWaveformTheme` | Defined in `stream_chat_flutter` | Moved to `stream_core_flutter`; no longer in `StreamChatThemeData` |
27+
| `StreamAudioWaveformSliderTheme` | Defined in `stream_chat_flutter` | Moved to `stream_core_flutter`; no longer in `StreamChatThemeData` |
28+
| `StreamAudioWaveform` widget | In `stream_chat_flutter` | Re-exported from `stream_core_flutter` via `stream_chat_flutter` |
29+
| `StreamAudioWaveformSlider` widget | In `stream_chat_flutter` | Re-exported from `stream_core_flutter` via `stream_chat_flutter` |
30+
| Theming entry point | `StreamChatThemeData.audioWaveformTheme` / `.audioWaveformSliderTheme` | `StreamTheme` (via `MaterialApp.theme.extensions`) |
3131

3232
---
3333

migrations/redesign/channel_list_item.md

Lines changed: 63 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,23 @@ This guide covers the migration for the redesigned channel list item components
1111
- [Customizing Slots](#customizing-slots)
1212
- [Low-level Presentational Component](#low-level-presentational-component)
1313
- [Theme Migration](#theme-migration)
14+
- [Removed Widgets](#removed-widgets)
1415
- [Migration Checklist](#migration-checklist)
1516

1617
---
1718

1819
## Quick Reference
1920

20-
| Old | New |
21-
|-----|-----|
22-
| `StreamChannelListTile` | `StreamChannelListItem` |
23-
| Constructor props: `leading`, `title`, `subtitle`, `trailing` | `StreamChannelListItemProps` (via `StreamComponentFactory`) |
24-
| `tileColor`, `visualDensity`, `contentPadding` | Removed — use `StreamChannelListItemThemeData` |
25-
| `selectedTileColor` | Removed — use `StreamChannelListItemThemeData.backgroundColor` |
26-
| `unreadIndicatorBuilder` | Removed |
27-
| `StreamChannelPreviewThemeData` | `StreamChannelListItemThemeData` |
28-
| `StreamChannelPreviewTheme.of(context)` | `StreamChannelListItemTheme.of(context)` |
29-
| `StreamChatThemeData.channelPreviewTheme` | `StreamChatThemeData.channelListItemTheme` |
21+
| Old | New |
22+
| ------------------------------------------------------------- | -------------------------------------------------------------- |
23+
| `StreamChannelListTile` | `StreamChannelListItem` |
24+
| Constructor props: `leading`, `title`, `subtitle`, `trailing` | `StreamChannelListItemProps` (via `StreamComponentFactory`) |
25+
| `tileColor`, `visualDensity`, `contentPadding` | Removed — use `StreamChannelListItemThemeData` |
26+
| `selectedTileColor` | Removed — use `StreamChannelListItemThemeData.backgroundColor` |
27+
| `unreadIndicatorBuilder` | Removed |
28+
| `StreamChannelPreviewThemeData` | `StreamChannelListItemThemeData` |
29+
| `StreamChannelPreviewTheme.of(context)` | `StreamChannelListItemTheme.of(context)` |
30+
| `StreamChatThemeData.channelPreviewTheme` | `StreamChatThemeData.channelListItemTheme` |
3031

3132
---
3233

@@ -132,23 +133,23 @@ StreamChannelListTile(
132133

133134
### Property Mapping
134135

135-
| Old (`StreamChannelPreviewThemeData`) | New (`StreamChannelListItemThemeData`) |
136-
|---------------------------------------|----------------------------------------|
137-
| `titleStyle` | `titleStyle` |
138-
| `subtitleStyle` | `subtitleStyle` |
139-
| `lastMessageAtStyle` | `timestampStyle` |
140-
| `avatarTheme` | Removed — use `StreamAvatarThemeData` directly |
141-
| `unreadCounterColor` | Removed — use `StreamBadgeNotificationThemeData` |
142-
| `indicatorIconSize` | Removed |
143-
| `lastMessageAtFormatter` | Removed from theme — pass to `ChannelLastMessageDate(formatter: ...)` |
136+
| Old (`StreamChannelPreviewThemeData`) | New (`StreamChannelListItemThemeData`) |
137+
| ------------------------------------- | --------------------------------------------------------------------- |
138+
| `titleStyle` | `titleStyle` |
139+
| `subtitleStyle` | `subtitleStyle` |
140+
| `lastMessageAtStyle` | `timestampStyle` |
141+
| `avatarTheme` | Removed — use `StreamAvatarThemeData` directly |
142+
| `unreadCounterColor` | Removed — use `StreamBadgeNotificationThemeData` |
143+
| `indicatorIconSize` | Removed |
144+
| `lastMessageAtFormatter` | Removed from theme — pass to `ChannelLastMessageDate(formatter: ...)` |
144145

145146
### New Properties
146147

147-
| Property | Type | Description |
148-
|----------|------|-------------|
149-
| `backgroundColor` | `WidgetStateProperty<Color?>?` | Background color resolved per state (default, hover, pressed, selected) |
150-
| `borderColor` | `Color?` | Bottom border color |
151-
| `muteIconPosition` | `MuteIconPosition?` | Whether the mute icon appears in `title` or `subtitle` row |
148+
| Property | Type | Description |
149+
| ------------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------- |
150+
| `backgroundColor` | `WidgetStateProperty<Color?>?` | Background color resolved per state (default, hover, pressed, selected) |
151+
| `borderColor` | `Color?` | Bottom border color |
152+
| `attributePosition` | `AttributePosition?` | Where the mute and pin icons appear: `inlineTitle` (in the title row) or `trailingBottom` (in the subtitle row) |
152153

153154
### Global Theme Migration
154155

@@ -256,6 +257,42 @@ ChannelLastMessageDate(
256257

257258
---
258259

260+
## Removed Widgets
261+
262+
The following channel-list-related widgets have been removed. Replace any direct references with the listed alternatives.
263+
264+
| Removed Widget | Replacement |
265+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
266+
| `StreamChannelGridView` | Removed — build your own grid using `StreamChannelListController` and `GridView` (the list controller already paginates) |
267+
| `StreamChannelGridTile` | Removed — render a custom tile widget inside your `GridView` |
268+
| `StreamChannelInfoBottomSheet` | Removed — the sample app ships a reference implementation; copy or build your own channel info / details sheet |
269+
270+
**`StreamChannelGridView` migration sketch:**
271+
272+
**Before:**
273+
274+
```dart
275+
StreamChannelGridView(
276+
controller: channelListController,
277+
itemBuilder: (context, channels, index, defaultTile) => defaultTile,
278+
)
279+
```
280+
281+
**After:**
282+
283+
```dart
284+
PagedValueGridView<int, Channel>(
285+
controller: channelListController,
286+
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
287+
itemBuilder: (context, channels, index) {
288+
final channel = channels[index];
289+
return MyChannelGridTile(channel: channel);
290+
},
291+
)
292+
```
293+
294+
---
295+
259296
## Migration Checklist
260297

261298
- [ ] Replace `StreamChannelListTile` with `StreamChannelListItem`
@@ -268,3 +305,5 @@ ChannelLastMessageDate(
268305
- [ ] Replace `tileColor`/`selectedTileColor` with `StreamChannelListItemThemeData.backgroundColor` using `WidgetStateProperty`
269306
- [ ] Replace `unreadCounterColor` with `StreamBadgeNotificationThemeData`
270307
- [ ] Replace `avatarTheme` in `StreamChannelPreviewThemeData` with `StreamAvatarThemeData` on the avatar widget directly
308+
- [ ] Remove any `StreamChannelGridView` / `StreamChannelGridTile` usage — build your own grid using `StreamChannelListController` with a `PagedValueGridView`
309+
- [ ] Remove any `StreamChannelInfoBottomSheet` usage — copy the sample app's channel info sheet or build your own

0 commit comments

Comments
 (0)