Contextual menu for rooms (#842)

* Add room contextual menu

* Add room context menu view actions

* Add navigation to room’s detail

* Show leave alert in HomeScreen

* Implement leave logic

* Refine leave navigation for iPad

* Optimize leave from homescreen

* Refactor roomSettings -> roomDetails

* Refactor room for id mock

* Add UTs

* Cleanup

* Fix alert presentation in RoomDetailsScreenViewModel

* Fix animation flag
This commit is contained in:
Alfonso Grillo
2023-05-04 12:02:18 +02:00
committed by GitHub
parent 86aebfb9ef
commit e9c07c9f8f
14 changed files with 242 additions and 17 deletions
@@ -53,9 +53,13 @@ class MockClientProxy: ClientProxyProtocol {
.failure(.failedCreatingRoom)
}
var roomInviter: RoomMemberProxyMock?
var roomForIdentifierMocks: [String: RoomProxyMock] = .init()
@MainActor
func roomForIdentifier(_ identifier: String) async -> RoomProxyProtocol? {
guard roomForIdentifierMocks[identifier] == nil else {
return roomForIdentifierMocks[identifier]
}
guard let room = visibleRoomsSummaryProvider?.roomListPublisher.value.first(where: { $0.id == identifier }) else {
return nil
}
@@ -64,10 +68,7 @@ class MockClientProxy: ClientProxyProtocol {
case .empty:
return RoomProxyMock(with: .init(displayName: "Empty room"))
case .filled(let details), .invalidated(let details):
let room = RoomProxyMock(with: .init(displayName: details.name))
room.acceptInvitationReturnValue = .success(())
room.inviterReturnValue = roomInviter
return room
return RoomProxyMock(with: .init(displayName: details.name))
}
}