Display whether a call is ongoing in any particular room on the room list

This commit is contained in:
Stefan Ceriu
2023-11-10 17:46:55 +02:00
committed by Stefan Ceriu
parent 2e1b4cb80b
commit 5c4e0bd76d
28 changed files with 66 additions and 60 deletions
@@ -126,7 +126,7 @@ struct RoomScreenViewState: BindableState {
var ownUserID: String
var isCallOngoing = false
var hasOngoingCall = false
var bindings: RoomScreenViewStateBindings
@@ -87,7 +87,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
readReceiptsEnabled: appSettings.readReceiptsEnabled,
isEncryptedOneToOneRoom: roomProxy.isEncryptedOneToOneRoom,
ownUserID: roomProxy.ownUserID,
isCallOngoing: roomProxy.isCallOngoing,
hasOngoingCall: roomProxy.hasOngoingCall,
bindings: .init(reactionsCollapsed: [:])),
imageProvider: mediaProvider)
@@ -281,7 +281,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
guard let self else { return }
self.state.roomTitle = roomProxy.roomTitle
self.state.roomAvatarURL = roomProxy.avatarURL
self.state.isCallOngoing = roomProxy.isCallOngoing
self.state.hasOngoingCall = roomProxy.hasOngoingCall
}
.store(in: &cancellables)
@@ -164,7 +164,7 @@ struct RoomScreen: View {
@ViewBuilder
private var callButton: some View {
if context.viewState.isCallOngoing {
if context.viewState.hasOngoingCall {
Button {
context.send(viewAction: .presentCall)
} label: {
@@ -189,7 +189,7 @@ struct RoomScreen: View {
// MARK: - Previews
struct RoomScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(displayName: "Preview room", isCallOngoing: true)),
static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(displayName: "Preview room", hasOngoingCall: true)),
timelineController: MockRoomTimelineController(),
mediaProvider: MockMediaProvider(),
mediaPlayerProvider: MediaPlayerProviderMock(),
@@ -24,6 +24,7 @@ struct SeparatorRoomTimelineView: View {
.font(.compound.bodySMSemibold)
.foregroundColor(.compound.textPrimary)
.frame(maxWidth: .infinity)
.multilineTextAlignment(.center)
.padding(.horizontal, 36.0)
.padding(.vertical, 8.0)
}