@@ -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