Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/smoke-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ jobs:
- uses: ./.github/actions/bootstrap
env:
INSTALL_INTERFACE_ANALYZER: true
- run: bundle exec fastlane validate_public_interface
- run: bundle exec fastlane lint_pr
- run: bundle exec fastlane rubocop
- run: bundle exec fastlane run_swift_format strict:true
- run: bundle exec fastlane validate_public_interface
- run: bundle exec fastlane pod_lint
if: startsWith(github.event.pull_request.head.ref, 'release/')

Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### πŸ”„ Changed

# [4.84.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.84.0)
_August 07, 2025_

### βœ… Added
- Make `AddUsersView` used by `ChatChannelInfoView` public for creating custom info views through composition [#906](https://github.com/GetStream/stream-chat-swiftui/pull/906)
- Expose `ChannelAvatarViewOptions.init` [#908](https://github.com/GetStream/stream-chat-swiftui/pull/908)
### 🐞 Fixed
- Fix WebView error handling to enable mp3 attachments loading [#904](https://github.com/GetStream/stream-chat-swiftui/pull/904)

# [4.83.0](https://github.com/GetStream/stream-chat-swiftui/releases/tag/4.83.0)
_July 29, 2025_

Expand Down
60 changes: 32 additions & 28 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,23 @@ GEM
ast (2.4.3)
atomos (0.1.3)
aws-eventstream (1.4.0)
aws-partitions (1.1114.0)
aws-sdk-core (3.225.1)
aws-partitions (1.1139.0)
aws-sdk-core (3.228.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.104.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-kms (1.109.0)
aws-sdk-core (~> 3, >= 3.228.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.189.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-s3 (1.195.0)
aws-sdk-core (~> 3, >= 3.228.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.12.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.3.0)
Expand All @@ -52,7 +53,7 @@ GEM
cork
nap
open4 (~> 1.3)
clamp (1.3.2)
clamp (1.3.3)
cocoapods (1.16.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
Expand Down Expand Up @@ -99,20 +100,20 @@ GEM
connection_pool (2.5.3)
cork (0.3.0)
colored2 (~> 3.1)
danger (9.5.1)
danger (9.5.3)
base64 (~> 0.2)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
colored2 (>= 3.1, < 5)
cork (~> 0.1)
faraday (>= 0.9.0, < 3.0)
faraday-http-cache (~> 2.0)
git (~> 1.13)
kramdown (~> 2.3)
git (>= 1.13, < 3.0)
kramdown (>= 2.5.1, < 3.0)
kramdown-parser-gfm (~> 1.0)
octokit (>= 4.0)
pstore (~> 0.1)
terminal-table (>= 1, < 4)
terminal-table (>= 1, < 5)
danger-commit_lint (0.0.7)
danger-plugin-api (~> 1.0)
danger-plugin-api (1.0.0)
Expand Down Expand Up @@ -144,12 +145,12 @@ GEM
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-http-cache (2.5.1)
faraday (>= 0.8)
faraday-httpclient (1.0.1)
faraday-multipart (1.1.0)
faraday-multipart (1.1.1)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
Expand Down Expand Up @@ -207,7 +208,7 @@ GEM
fastlane
pry
fastlane-plugin-sonarcloud_metric_kit (0.2.1)
fastlane-plugin-stream_actions (0.3.84)
fastlane-plugin-stream_actions (0.3.90)
xctest_list (= 1.2.1)
fastlane-plugin-versioning (0.7.1)
fastlane-sirp (1.0.0)
Expand All @@ -216,8 +217,10 @@ GEM
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
git (1.19.1)
git (2.3.3)
activesupport (>= 5.0)
addressable (~> 2.8)
process_executer (~> 1.1)
rchardet (~> 1.8)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
Expand Down Expand Up @@ -263,29 +266,29 @@ GEM
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.12.2)
jwt (2.10.1)
json (2.13.2)
jwt (2.10.2)
base64
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
lefthook (1.11.16)
lefthook (1.12.2)
logger (1.7.0)
method_source (1.1.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (5.25.5)
molinillo (0.8.0)
multi_json (1.15.0)
multi_json (1.17.0)
multipart-post (2.4.1)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
nap (1.1.0)
naturally (2.2.2)
naturally (2.3.0)
netrc (0.11.0)
nio4r (2.7.4)
nkf (0.2.0)
Expand All @@ -299,20 +302,21 @@ GEM
optparse (0.6.0)
os (1.1.4)
parallel (1.27.0)
parser (3.3.8.0)
parser (3.3.9.0)
ast (~> 2.4.1)
racc
plist (3.7.2)
prism (1.4.0)
process_executer (1.3.0)
pry (0.15.2)
coderay (~> 1.1)
method_source (~> 1.0)
pstore (0.2.0)
public_suffix (4.0.7)
puma (6.6.0)
puma (6.6.1)
nio4r (~> 2.0)
racc (1.8.1)
rack (3.1.16)
rack (3.2.0)
rack-protection (4.1.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
Expand Down Expand Up @@ -343,7 +347,7 @@ GEM
rubocop-ast (>= 1.23.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.45.1)
rubocop-ast (1.46.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-performance (1.19.1)
Expand Down Expand Up @@ -385,7 +389,7 @@ GEM
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tilt (2.6.0)
tilt (2.6.1)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.2)
Expand Down Expand Up @@ -422,7 +426,7 @@ DEPENDENCIES
fastlane-plugin-create_xcframework
fastlane-plugin-lizard
fastlane-plugin-sonarcloud_metric_kit
fastlane-plugin-stream_actions (= 0.3.84)
fastlane-plugin-stream_actions (= 0.3.90)
fastlane-plugin-versioning
json
lefthook
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ let package = Package(
)
],
dependencies: [
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "4.83.0")
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "4.84.0")
],
targets: [
.target(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import StreamChat
import SwiftUI

/// View for the add users popup.
struct AddUsersView<Factory: ViewFactory>: View {
public struct AddUsersView<Factory: ViewFactory>: View {
@Injected(\.fonts) private var fonts
@Injected(\.colors) private var colors

Expand All @@ -24,7 +24,7 @@ struct AddUsersView<Factory: ViewFactory>: View {
@StateObject private var viewModel: AddUsersViewModel
var onUserTap: (ChatUser) -> Void

init(
public init(
factory: Factory = DefaultViewFactory.shared,
loadedUserIds: [String],
onUserTap: @escaping (ChatUser) -> Void
Expand All @@ -48,7 +48,7 @@ struct AddUsersView<Factory: ViewFactory>: View {
self.factory = factory
}

var body: some View {
public var body: some View {
VStack {
SearchBar(text: $viewModel.searchText)

Expand Down
13 changes: 13 additions & 0 deletions Sources/StreamChatSwiftUI/ChatChannel/MessageList/WebView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ struct WebView: UIViewRepresentable {
didFailProvisionalNavigation navigation: WKNavigation!,
withError error: Error
) {
if isPluginHandledLoadResult(error) {
return
}

isLoading.wrappedValue = false
self.error.wrappedValue = error
}
Expand All @@ -80,8 +84,17 @@ struct WebView: UIViewRepresentable {
didFail navigation: WKNavigation!,
withError error: Error
) {
if isPluginHandledLoadResult(error) {
return
}

isLoading.wrappedValue = false
self.error.wrappedValue = error
}

private func isPluginHandledLoadResult(_ error: Error) -> Bool {
let nsError = error as NSError
return nsError.domain == "WebKitErrorDomain" && nsError.code == 204
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,15 @@ public struct ChannelAvatarViewOptions {
/// Whether the online indicator should be shown.
public var showOnlineIndicator: Bool
/// Size of the avatar.
public var size: CGSize = .defaultAvatarSize
public var size: CGSize
/// Optional avatar image. If not provided, it will be loaded by the channel header loader.
public var avatar: UIImage?

public init(showOnlineIndicator: Bool, size: CGSize = .defaultAvatarSize, avatar: UIImage? = nil) {
self.showOnlineIndicator = showOnlineIndicator
self.size = size
self.avatar = avatar
}
}

/// View for the avatar used in channels (includes online indicator overlay).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ import Foundation

enum SystemEnvironment {
/// A Stream Chat version.
public static let version: String = "4.83.0"
public static let version: String = "4.84.0"
}
2 changes: 1 addition & 1 deletion Sources/StreamChatSwiftUI/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>4.83.0</string>
<string>4.84.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPhotoLibraryUsageDescription</key>
Expand Down
4 changes: 2 additions & 2 deletions StreamChatSwiftUI-XCFramework.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'StreamChatSwiftUI-XCFramework'
spec.version = '4.83.0'
spec.version = '4.84.0'
spec.summary = 'StreamChat SwiftUI Chat Components'
spec.description = 'StreamChatSwiftUI SDK offers flexible SwiftUI components able to display data provided by StreamChat SDK.'

Expand All @@ -19,7 +19,7 @@ Pod::Spec.new do |spec|

spec.framework = 'Foundation', 'UIKit', 'SwiftUI'

spec.dependency 'StreamChat-XCFramework', '~> 4.83.0'
spec.dependency 'StreamChat-XCFramework', '~> 4.84.0'

spec.cocoapods_version = '>= 1.11.0'
end
4 changes: 2 additions & 2 deletions StreamChatSwiftUI.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = 'StreamChatSwiftUI'
spec.version = '4.83.0'
spec.version = '4.84.0'
spec.summary = 'StreamChat SwiftUI Chat Components'
spec.description = 'StreamChatSwiftUI SDK offers flexible SwiftUI components able to display data provided by StreamChat SDK.'

Expand All @@ -19,5 +19,5 @@ Pod::Spec.new do |spec|

spec.framework = 'Foundation', 'UIKit', 'SwiftUI'

spec.dependency 'StreamChat', '~> 4.83.0'
spec.dependency 'StreamChat', '~> 4.84.0'
end
2 changes: 1 addition & 1 deletion StreamChatSwiftUI.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3908,7 +3908,7 @@
repositoryURL = "https://github.com/GetStream/stream-chat-swift.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 4.83.0;
minimumVersion = 4.84.0;
};
};
E3A1C01A282BAC66002D1E26 /* XCRemoteSwiftPackageReference "sentry-cocoa" */ = {
Expand Down
Loading
Loading