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
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ Full UI package. Key architectural points:
**Key UI components:**
- `StreamChannelListView` + `StreamChannelListTile` — channel list using `StreamChannelListController`
- `StreamMessageListView` — message list with floating date dividers, unread indicators, thread separators
- `StreamMessageInput` (legacy) / `StreamChatMessageComposer` (new design system) — message composition
- `StreamMessageComposer` (full-featured) / `StreamChatMessageInput` (new design system, UI-only) — message composition
- `StreamMessageWidget` — renders individual messages with attachments, reactions, threads
- Scroll views in `lib/src/scroll_view/` — generic paged scroll views for channels, threads, members, users, drafts, polls

**New design system components** (`lib/src/components/`):
- `StreamUserAvatar`, `StreamChannelAvatar`, `StreamUserAvatarGroup` — avatar components; these are chat-domain wrappers around the base components in `stream_core_flutter`
- `StreamChatMessageComposer` — new composer using `MessageComposerFactory` for custom layouts
- `StreamChatMessageInput` — new composer using `MessageComposerFactory` for custom layouts

**Golden tests:** Use `alchemist` package. Platform goldens used locally, CI goldens used in CI (detected via `CI`/`GITHUB_ACTIONS` env vars). Goldens stored alongside tests in `goldens/` subdirectories.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import '../src/mocks.dart';
Widget _buildMessageInputScaffold({
required MockClient client,
required MockChannel channel,
StreamMessageInput? messageInput,
StreamMessageComposer? messageInput,
}) {
return MaterialApp(
theme: docsScreenshotsTheme(),
Expand All @@ -28,7 +28,7 @@ Widget _buildMessageInputScaffold({
body: Column(
children: [
Expanded(child: Container()),
messageInput ?? const StreamMessageInput(),
messageInput ?? StreamMessageComposer(),
],
),
),
Expand All @@ -46,7 +46,7 @@ void main() {

goldenTest(
'default state',
fileName: 'stream_message_input_default',
fileName: 'stream_message_composer_default',
constraints: const BoxConstraints.tightFor(width: 375, height: 100),
builder: () {
final client = MockClient();
Expand Down Expand Up @@ -125,7 +125,7 @@ void main() {
body: Column(
children: [
const Expanded(child: SizedBox()),
StreamMessageInput(messageInputController: controller),
StreamMessageComposer(messageInputController: controller),
],
),
),
Expand Down Expand Up @@ -181,7 +181,7 @@ void main() {
body: Column(
children: [
Expanded(child: Container()),
const StreamMessageInput(),
StreamMessageComposer(),
],
),
),
Expand Down Expand Up @@ -218,7 +218,7 @@ void main() {
return _buildMessageInputScaffold(
client: client,
channel: channel,
messageInput: StreamMessageInput(messageInputController: controller),
messageInput: StreamMessageComposer(messageInputController: controller),
);
},
);
Expand Down
2 changes: 1 addition & 1 deletion docs/docs_screenshots/test/src/mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class MockChannelState extends Mock implements ChannelClientState {
}
}

/// Sets up a [MockChannel] with all stubs required by [StreamMessageInput].
/// Sets up a [MockChannel] with all stubs required by [StreamMessageComposer].
void setupMockChannel({
required MockClient client,
required MockClientState clientState,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Widget _buildVoiceRecordingMessageInputScaffold({
body: Column(
children: [
Expanded(child: Container()),
StreamMessageInput(
StreamMessageComposer(
enableVoiceRecording: true,
messageInputController: messageInputController,
),
Expand Down Expand Up @@ -93,7 +93,7 @@ Widget _buildVoiceRecordingContextScaffold({
],
),
),
const StreamMessageInput(enableVoiceRecording: true),
StreamMessageComposer(enableVoiceRecording: true),
],
),
),
Expand All @@ -103,11 +103,11 @@ Widget _buildVoiceRecordingContextScaffold({
}

/// Scaffold that shows a full message input bar (with attachment button and
/// placeholder) using [StreamChatMessageComposer] so we can inject a custom
/// placeholder) using [StreamChatMessageInput] so we can inject a custom
/// [audioRecorderController] to control the recording state.
///
/// The outer [Material] + bottom padding mirrors what [StreamMessageInput]
/// wraps around [StreamChatMessageComposer] internally.
/// The outer [Material] + bottom padding mirrors what [StreamMessageComposer]
/// wraps around [StreamChatMessageInput] internally.
Widget _buildVoiceRecordingComposerScaffold({
required MockClient client,
required MockChannel channel,
Expand Down Expand Up @@ -136,7 +136,7 @@ Widget _buildVoiceRecordingComposerScaffold({
),
child: Padding(
padding: EdgeInsets.only(bottom: context.streamSpacing.md),
child: StreamChatMessageComposer(
child: StreamChatMessageInput(
onSendPressed: () {},
onAttachmentButtonPressed: () {},
placeholder: 'Send a message',
Expand Down
1 change: 1 addition & 0 deletions melos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ categories:

command:
bootstrap:
runPubGetInParallel: false
# Dart and Flutter environment used in the project.
environment:
sdk: ^3.10.0
Expand Down
Loading
Loading