Skip to content

Conversation

@testableapple
Copy link
Contributor

@testableapple testableapple commented Nov 24, 2025

🔗 Issue Links

Resolve https://linear.app/stream/issue/IOS-1262

🎯 Goal

  • Resolve channel creation limitations
  • Fix DemoApp search issues

📝 Summary

  • Align UIKit and SwiftUI DemoApps users search feature
  • Fix tab bar covering composer
  • Fix nav bar after creating a channel
  • Fix typing event in a non-created channel causing API errors
  • Allow sending attachments on channel creation

🧪 Manual Testing Notes

  1. Test creating a personal channel with multiple users
  2. Test creating a group channel with multiple users

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change should be manually QAed
  • Changelog is updated with client-facing changes
  • Changelog is updated with new localization keys
  • New code is covered by unit tests
  • Documentation has been updated in the docs-content repo

@github-actions
Copy link

1 Warning
⚠️ Big PR
1 Message
📖 There seems to be app changes but CHANGELOG wasn't modified.
Please include an entry if the PR includes user-facing changes.
You can find it at CHANGELOG.md.

Generated by 🚫 Danger

@testableapple testableapple added the 🪧 Demo App An Issue or PR related to the Demo App label Nov 25, 2025
@testableapple testableapple marked this pull request as ready for review November 25, 2025 10:39
@testableapple testableapple requested a review from a team as a code owner November 25, 2025 10:39
Copy link
Contributor

@martinmitrevski martinmitrevski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It still doesn't work well:

  • when I first open it, it loads forever and then shows an error
  • whenever I open the keyboard, it starts loading (although I haven't typed anything)
  • the search still fails from time to time
  • it's kind of slow - not sure if it's the backend or sth on the mobile side.

switch pickerTypeState {
case let .expanded(attachmentPickerType):
if composerViewModel.channelController.channel?.canUploadFile == true && composerViewModel.isSendMessageEnabled {
// Allow attachments even when channel is nil (not yet synchronized)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how's that situation possible? By the time you open the picker and select the attachment, the channel is synced. Unless you don't have internet, in which case, it should be disabled.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do allow to send attachments as a first message on UIKit when selecting users. On SwiftUI this was not possible.

// Check if channel needs synchronization (new channel, not yet created)
let needsSync = channelController.channel == nil

if needsSync {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need this? It's general a bad practice to do ifs in the factory methods.

}


func makeEmptyMessagesView(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why's this needed?

import StreamChatSwiftUI
import SwiftUI

class NewChatComposerViewModel: MessageComposerViewModel {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why's this needed? Seems like the AI went crazy in this PR?

Copy link
Contributor

@martinmitrevski martinmitrevski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a lot of unnecessary stuff here, let's focus on fixing the search

@github-actions
Copy link

Public Interface

🚀 No changes affecting the public interface.

@sonarqubecloud
Copy link

@Stream-SDK-Bot
Copy link
Collaborator

SDK Size

title develop branch diff status
StreamChatSwiftUI 9.68 MB 9.68 MB 0 KB 🟢

@Stream-SDK-Bot
Copy link
Collaborator

StreamChatSwiftUI XCSize

Object Diff (bytes)
MessageComposerViewModel.o +132

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

Labels

🪧 Demo App An Issue or PR related to the Demo App

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants