Skip to content

feat(ui): add the scheduled messages list and actions - #3150

Draft
xsahil03x wants to merge 5 commits into
masterfrom
sahil/flu-954-scheduled-messages-ui-list
Draft

xsahil03x wants to merge 5 commits into
masterfrom
sahil/flu-954-scheduled-messages-ui-list

Conversation

@xsahil03x

Copy link
Copy Markdown
Member

Linear: FLU-954

Stacked on #3149. Replaces #3140.

What changed

Adds the scheduled messages list to stream_chat_flutter, built on the client-owned list from #3149.

  • StreamScheduledMessageListView lists the current user's scheduled messages, or one channel's (cid) or one thread's (parentId). It follows the client's list as it changes and loads it when it isn't fully loaded yet. Same builders and scroll parameters as the other list views (itemBuilder, emptyBuilder, loadingBuilder, errorBuilder, on…Tap/on…LongPress); no pagination, since a user has at most 100 pending scheduled messages.
  • StreamScheduledMessageListItem (…Props + DefaultStreamScheduledMessageListItem, overridable through streamChatComponentBuilders(scheduledMessageListItem:)) shows the send time, the channel, the message preview with its thread-reply / quote prefix, and the status: sending, uploading, or why it failed. Styled by the new StreamChatThemeData.scheduledMessageListItemTheme.
  • showStreamScheduledMessageActions opens a sheet with the actions the message's status allows — scheduled: edit, reschedule, send now, delete; failed: edit & reschedule, delete; channel deleted: copy text, delete — and returns the chosen ScheduledMessageAction. actionsBuilder adds, removes or reorders rows.
  • StreamMessageComposer.onSendLongPress is called when Send is long-pressed while it would send a new message.
  • StreamChannelListController.includeScheduledMessages fills each loaded channel's scheduled messages with the channel query.
  • Strings in Translations and all 11 locales; the send time is formatted per locale.
  • Sample app: a Scheduled tab and per-channel / per-thread lists, with the actions wired to the client.

Why

The list, item and action sheet follow the Figma designs (item, screens) and the SDK's existing list and component patterns. Android and iOS read the same client-owned list for their scheduled screens and use the same channel-name fallback and per-status actions; the React SDK ships the list as a component too.

Verified

  • Tests: stream_chat_flutter 1797 (plus item goldens), stream_chat_flutter_core 418, stream_chat_localizations 47, sample app 2.
  • dart analyze --fatal-infos clean on all packages; dart format clean.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@xsahil03x
xsahil03x added this pull request to stack #3152 November 10, 2026 08:43
@xsahil03x
xsahil03x force-pushed the sahil/flu-954-scheduled-messages-ui-list branch from ea6aef8 to e733afc Compare November 10, 2026 12:43
Base automatically changed from sahil/flu-954-scheduled-messages-llc-store to master November 10, 2026 14:35
xsahil03x and others added 3 commits November 10, 2026 14:35
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… polish its docs

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xsahil03x
xsahil03x force-pushed the sahil/flu-954-scheduled-messages-ui-list branch from 264b84d to 93de267 Compare November 10, 2026 14:35
xsahil03x and others added 2 commits November 10, 2026 16:08
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant