Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ void main() {
channelState: channelState,
);

final controller = StreamMessageInputController();
final controller = StreamMessageComposerController();

return MaterialApp(
theme: docsScreenshotsTheme(),
Expand All @@ -125,7 +125,7 @@ void main() {
body: Column(
children: [
const Expanded(child: SizedBox()),
StreamMessageComposer(messageInputController: controller),
StreamMessageComposer(messageComposerController: controller),
],
),
),
Expand Down Expand Up @@ -208,7 +208,7 @@ void main() {
channelState: channelState,
);

final controller = StreamMessageInputController()
final controller = StreamMessageComposerController()
..quotedMessage = Message(
id: 'quoted-msg',
text: 'This is the original message',
Expand All @@ -218,7 +218,7 @@ void main() {
return _buildMessageInputScaffold(
client: client,
channel: channel,
messageInput: StreamMessageComposer(messageInputController: controller),
messageInput: StreamMessageComposer(messageComposerController: controller),
);
},
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ StreamAudioRecorderController _makeRecorderController(AudioRecorderState initial
Widget _buildVoiceRecordingMessageInputScaffold({
required MockClient client,
required MockChannel channel,
StreamMessageInputController? messageInputController,
StreamMessageComposerController? messageComposerController,
}) {
return MaterialApp(
theme: docsScreenshotsTheme(),
Expand All @@ -44,7 +44,7 @@ Widget _buildVoiceRecordingMessageInputScaffold({
Expanded(child: Container()),
StreamMessageComposer(
enableVoiceRecording: true,
messageInputController: messageInputController,
messageComposerController: messageComposerController,
),
],
),
Expand Down Expand Up @@ -302,7 +302,7 @@ void main() {
final channelState = MockChannelState();
_setupChannel(client, clientState, channel, channelState);

final messageInputController = StreamMessageInputController()
final messageComposerController = StreamMessageComposerController()
..addAttachment(
Attachment(
type: 'voiceRecording',
Expand All @@ -318,7 +318,7 @@ void main() {
return _buildVoiceRecordingMessageInputScaffold(
client: client,
channel: channel,
messageInputController: messageInputController,
messageComposerController: messageComposerController,
);
},
);
Expand Down
4 changes: 2 additions & 2 deletions migrations/redesign/message_composer.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ Use this when you want the new design system visuals with custom business logic.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `onSendPressed` | `VoidCallback` | **required** | Called when the send button is pressed |
| `controller` | `StreamMessageInputController?` | `null` | Controller for the input; created internally if not provided |
| `controller` | `StreamMessageComposerController?` | `null` | Controller for the input; created internally if not provided |
| `onAttachmentButtonPressed` | `VoidCallback?` | `null` | Called when the attachment button is pressed. When `null`, the attachment button is hidden. |
| `isPickerOpen` | `bool` | `false` | Whether the inline attachment picker is currently open |
| `focusNode` | `FocusNode?` | `null` | Focus node for the text field |
Expand Down Expand Up @@ -259,7 +259,7 @@ Each case carries the contextual data relevant to that input state. Pattern-matc
| Case | Field | Type | Description |
|------|-------|------|-------------|
| `WriteMessagePlaceholder` | `isEditing` | `bool` | `true` when the input is editing an existing message instead of composing a new one. Useful for swapping the placeholder while editing. |
| `SlowModePlaceholder` | `cooldownTimeOut` | `int` | Remaining slow-mode cooldown in seconds. Mirrors `StreamMessageInputController.cooldownTimeOut`. |
| `SlowModePlaceholder` | `cooldownTimeOut` | `int` | Remaining slow-mode cooldown in seconds. Mirrors `StreamMessageComposerController.cooldownTimeOut`. |
| `SlowModePlaceholder` | `cooldown` | `Duration` | Convenience getter wrapping `cooldownTimeOut` for formatting timer strings. |
| `CommandPlaceholder` | `command` | `String` | Active command name (e.g. `'giphy'`, `'mute'`, `'ban'`, or any backend-defined command). |
| `AttachmentsPlaceholder` | `attachments` | `List<Attachment>` | Pending attachments held by the input. OG link previews are still included — filter via `Attachment.ogScrapeUrl` if you only want user-added ones. |
Expand Down
1 change: 1 addition & 0 deletions packages/stream_chat_flutter/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

🛑️ Breaking

- Renamed `StreamMessageComposer.messageInputController` parameter to `messageComposerController`.
- Removed `StreamDraftListView`, `StreamDraftListTile`, `StreamDraftListTileTheme`, and `StreamDraftListTileThemeData` from the SDK. Also removed `StreamChatThemeData.draftListTileTheme`. Refer to the sample app for a reference implementation using `StreamDraftListController` and `PagedValueListView`.
- Renamed `StreamMessageComposerInput` → `StreamMessageComposerInputCenter` (and `DefaultStreamMessageComposerInput` → `DefaultStreamMessageComposerInputCenter`). The name `StreamMessageComposerInput` is now the input container widget (assembles header, leading, center, trailing).
- Renamed `MessageComposerInputProps` → `MessageComposerInputCenterProps`. The name `MessageComposerInputProps` now refers to the new container widget's props.
Expand Down
12 changes: 6 additions & 6 deletions packages/stream_chat_flutter/example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ class ChannelPage extends StatefulWidget {
}

class _ChannelPageState extends State<ChannelPage> {
late final messageInputController = StreamMessageInputController();
late final messageComposerController = StreamMessageComposerController();
final focusNode = FocusNode();

@override
Expand Down Expand Up @@ -270,17 +270,17 @@ class _ChannelPageState extends State<ChannelPage> {
),
StreamMessageComposer(
enableVoiceRecording: true,
onQuotedMessageCleared: messageInputController.clearQuotedMessage,
onQuotedMessageCleared: messageComposerController.clearQuotedMessage,
focusNode: focusNode,
messageInputController: messageInputController,
messageComposerController: messageComposerController,
),
],
),
);
}

void reply(Message message) {
messageInputController.quotedMessage = message;
messageComposerController.quotedMessage = message;
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
focusNode.requestFocus();
});
Expand All @@ -289,7 +289,7 @@ class _ChannelPageState extends State<ChannelPage> {
@override
void dispose() {
focusNode.dispose();
messageInputController.dispose();
messageComposerController.dispose();
super.dispose();
}
}
Expand Down Expand Up @@ -317,7 +317,7 @@ class ThreadPage extends StatelessWidget {
),
StreamMessageComposer(
enableVoiceRecording: true,
messageInputController: StreamMessageInputController(
messageComposerController: StreamMessageComposerController(
message: Message(parentId: parent.id),
),
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ class ThreadPage extends StatelessWidget {
),
),
StreamMessageComposer(
messageInputController: StreamMessageInputController(
messageComposerController: StreamMessageComposerController(
message: Message(parentId: parent!.id),
),
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ class ThreadPage extends StatelessWidget {
),
),
StreamMessageComposer(
messageInputController: StreamMessageInputController(
messageComposerController: StreamMessageComposerController(
message: Message(parentId: parent!.id),
),
),
Expand Down
Loading
Loading