Room's details edit screen (#956)

* Add RoomDetailsEditScreen template

* Add navigation to the edit screen

* Delete template code

* Start RoomDetailsEditScreen UI

* Manage power levels in RoomDetailsScreen

* Start RoomDetailsEditScreenViewModel logic

* Inject initial room state

* Add cancel action

* Expose set name/topic APIs in RoomProxy

* Refine RoomDetailsEditScreen UI

* Add save logic

* Add localisations

* Fix avatar image

* Update localisations

* Add “Add topic” button

* Add feature flag

* Add dismiss on save logic

* Reduce throttling

* Improve form logic

* Fix UT build errors

* Add media sheet

* Add media preprocessing

* Add LoadableEditableAvatarImage

* Add condition on delete image

* Add avatar save button logic

* Add remove avatar logic

* Cleanup

* Fix edit bug in DM

* Add upload avatar

* Add focus

* Add RoomDetailsViewModel UTs

* Fix button style

* Add UTs

* Add empty topic ui test

* Fix iPad sheet presentation

* Revert topic appearance in room’s details

* Address PR comments

* Add UI tests
This commit is contained in:
Alfonso Grillo
2023-05-26 15:47:12 +02:00
committed by GitHub
parent 524997438f
commit f2b7faa183
47 changed files with 1281 additions and 54 deletions
@@ -0,0 +1,31 @@
//
// Copyright 2022 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import ElementX
import XCTest
@MainActor
class RoomDetailsEditScreenUITests: XCTestCase {
func testEditableRoom() async throws {
let app = Application.launch(.roomEditDetails)
try await app.assertScreenshot(.roomEditDetails)
}
func testReadOnlyRoom() async throws {
let app = Application.launch(.roomEditDetailsReadOnly)
try await app.assertScreenshot(.roomEditDetailsReadOnly)
}
}
@@ -35,6 +35,13 @@ class RoomDetailsScreenUITests: XCTestCase {
try await app.assertScreenshot(.roomDetailsScreenWithRoomAvatar)
}
func testInitialStateComponentsWithEmptyTopic() async throws {
let app = Application.launch(.roomDetailsScreenWithEmptyTopic)
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.addTopic].waitForExistence(timeout: 1))
try await app.assertScreenshot(.roomDetailsScreenWithEmptyTopic)
}
func testInitialStateComponentsWithInvite() async throws {
let app = Application.launch(.roomDetailsScreenWithInvite)
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:412217a207ef9a3615aec0cd8c6fa6c9eb5f78aa25389b227d2bed99c1245291
size 109946
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3f1c4b2bd06eca5a87809115c557c2bd56aa932d0d3beeadabea1151ca908a49
size 78981
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae566dbc1b03a1cfdb1b3b1412c79c2b0801b3f60f89180d60be7f8819782449
size 75125
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c9aee2d012e7519e63ff561684c8f12162c9fadceff533cb974e6fbdb42cb46a
size 137771
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0410d0f1a5b47c01c7fa4349c8aa10ee9a41e7fc550621ca6f10e8b1dc9e099a
size 87208
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4916268dcb63398ae44654dc5f98386102d0c9b3516fedfd75a6868dc7d77a1b
size 79861
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0f3f0e62b3f40ee32e2c0547d3bffefd66064caa2377b78e0dc28e92cf329229
size 124694
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:95180272e203386363518550eaca4ab66a5362a3514e8046b72e2d5010380fab
size 81651
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dff46af4fb867cfe29c989b5c0e4c3ec7db25f2af19ca60e4ea075f65ac719ce
size 78457
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5b8f42166bfee1c2f1a82db462465e03ac95ea35703d4328c7b5dfd4e071ad9
size 170859
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f2e6eb2365ccd1c1a0ace52872a8e84f191736dd7b74c7898256c420e30fe73
size 90556
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:232a667d2fd91bd1746509b186db7eb9676a4732110a84e3c9543808abf1d2f5
size 82817