Design Tweaks (#3606)

* updated the order of the room details

also...
- removed the bloom bg from the join room screen
- now DMs do not necessarily need to be encrypted rooms
- changed bg of the knock banner

* removed unnecessary disabled

* updated join room screen tests
This commit is contained in:
Mauro
2024-12-11 18:42:33 +01:00
committed by GitHub
parent 1c3d410e3f
commit 4e057fe195
38 changed files with 87 additions and 83 deletions

View File

@@ -363,12 +363,12 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
}
if roomProxy.infoPublisher.value.isPublic {
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isEncryptedOneToOneRoom, state: .public)
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isDirectOneToOneRoom, state: .public)
} else {
state.bindings.leaveRoomAlertItem = if roomProxy.infoPublisher.value.joinedMembersCount > 1 {
LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isEncryptedOneToOneRoom, state: .private)
LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isDirectOneToOneRoom, state: .private)
} else {
LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isEncryptedOneToOneRoom, state: .empty)
LeaveRoomAlertItem(roomID: roomID, isDM: roomProxy.isDirectOneToOneRoom, state: .empty)
}
}
}

View File

@@ -20,7 +20,7 @@ struct JoinRoomScreen: View {
}
var body: some View {
FullscreenDialog(topPadding: context.viewState.mode == .knocked ? 151 : 35, background: .bloom) {
FullscreenDialog(topPadding: context.viewState.mode == .knocked ? 151 : 35) {
if context.viewState.mode == .loading {
EmptyView()
} else {

View File

@@ -129,11 +129,11 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr
actionsSubject.send(.requestInvitePeoplePresentation)
case .processTapLeave:
guard state.joinedMembersCount > 1 else {
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomProxy.id, isDM: roomProxy.isEncryptedOneToOneRoom, state: .empty)
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomProxy.id, isDM: roomProxy.isDirectOneToOneRoom, state: .empty)
return
}
state.bindings.leaveRoomAlertItem = LeaveRoomAlertItem(roomID: roomProxy.id,
isDM: roomProxy.isEncryptedOneToOneRoom,
isDM: roomProxy.isDirectOneToOneRoom,
state: roomProxy.infoPublisher.value.isPublic ? .public : .private)
case .confirmLeave:
Task { await leaveRoom() }
@@ -205,7 +205,7 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr
private func fetchMembersIfNeeded() async {
// We need to fetch members just in 1-to-1 chat to get the member object for the other person
guard roomProxy.isEncryptedOneToOneRoom else {
guard roomProxy.isDirectOneToOneRoom else {
return
}

View File

@@ -26,6 +26,10 @@ struct RoomDetailsScreen: View {
topicSection
configurationSection
if context.viewState.dmRecipient == nil {
peopleSection
}
aboutSection
@@ -151,16 +155,6 @@ struct RoomDetailsScreen: View {
private var aboutSection: some View {
Section {
if context.viewState.dmRecipient == nil {
ListRow(label: .default(title: L10n.commonPeople,
icon: \.user),
details: .title(String(context.viewState.joinedMembersCount)),
kind: .navigationLink {
context.send(viewAction: .processTapPeople)
})
.accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.people)
}
ListRow(label: .default(title: L10n.screenRoomDetailsPinnedEventsRowTitle,
icon: \.pin),
details: context.viewState.pinnedEventsActionState.isLoading ? .isWaiting(true) : .title(context.viewState.pinnedEventsActionState.count),
@@ -213,7 +207,18 @@ struct RoomDetailsScreen: View {
.onChange(of: context.isFavourite) { _, newValue in
context.send(viewAction: .toggleFavourite(isFavourite: newValue))
}
}
}
private var peopleSection: some View {
Section {
ListRow(label: .default(title: L10n.commonPeople,
icon: \.user),
details: .title(String(context.viewState.joinedMembersCount)),
kind: .navigationLink {
context.send(viewAction: .processTapPeople)
})
.accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.people)
if context.viewState.canEditRolesOrPermissions, context.viewState.dmRecipient == nil {
ListRow(label: .default(title: L10n.screenRoomDetailsRolesAndPermissions,
icon: \.admin),
@@ -222,7 +227,6 @@ struct RoomDetailsScreen: View {
})
}
}
.disabled(context.viewState.notificationSettingsState.isLoading)
}
private var toggleMuteButton: some View {

View File

@@ -46,7 +46,7 @@ final class CompletionSuggestionService: CompletionSuggestionServiceProtocol {
}
if self.canMentionAllUsers,
!self.roomProxy.isEncryptedOneToOneRoom,
!self.roomProxy.isDirectOneToOneRoom,
Self.shouldIncludeMember(userID: PillConstants.atRoom, displayName: PillConstants.everyone, searchText: suggestionTrigger.text) {
membersSuggestion
.insert(SuggestionItem.allUsers(item: .init(id: PillConstants.atRoom,

View File

@@ -248,7 +248,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
state.pinnedEventsBannerState = .loading(numbersOfEvents: pinnedEventIDs.count)
}
switch (roomProxy.isEncryptedOneToOneRoom, roomInfo.joinRule) {
switch (roomProxy.isDirectOneToOneRoom, roomInfo.joinRule) {
case (false, .knock), (false, .knockRestricted):
state.isKnockableRoom = true
default:

View File

@@ -25,7 +25,7 @@ struct KnockRequestsBannerView: View {
var body: some View {
mainContent
.padding(16)
.background(.compound.bgCanvasDefault, in: RoundedRectangle(cornerRadius: 12))
.background(.compound.bgCanvasDefaultLevel1, in: RoundedRectangle(cornerRadius: 12))
.compositingGroup()
.shadow(color: Color(red: 0.11, green: 0.11, blue: 0.13).opacity(0.1), radius: 12, x: 0, y: 4)
.padding(.horizontal, 16)

View File

@@ -77,7 +77,7 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
super.init(initialViewState: TimelineViewState(timelineKind: timelineController.timelineKind,
roomID: roomProxy.id,
isEncryptedOneToOneRoom: roomProxy.isEncryptedOneToOneRoom,
isEncryptedOneToOneRoom: roomProxy.isDirectOneToOneRoom,
timelineState: TimelineState(focussedEvent: focussedEventID.map { .init(eventID: $0, appearance: .immediate) }),
ownUserID: roomProxy.ownUserID,
isViewSourceEnabled: appSettings.viewSourceEnabled,

View File

@@ -160,8 +160,8 @@ extension JoinedRoomProxyProtocol {
isPublic: infoPublisher.value.isPublic)
}
var isEncryptedOneToOneRoom: Bool {
infoPublisher.value.isDirect && isEncrypted && infoPublisher.value.activeMembersCount <= 2
var isDirectOneToOneRoom: Bool {
infoPublisher.value.isDirect && infoPublisher.value.activeMembersCount <= 2
}
func members() async -> [RoomMemberProxyProtocol]? {

View File

@@ -431,7 +431,7 @@ class RoomTimelineController: RoomTimelineControllerProtocol {
// Check if we need to add anything to the top of the timeline.
switch paginationState.backward {
case .timelineEndReached:
if timelineKind != .pinned, !roomProxy.isEncryptedOneToOneRoom {
if timelineKind != .pinned, !roomProxy.isDirectOneToOneRoom {
let timelineStart = TimelineStartRoomTimelineItem(name: roomProxy.infoPublisher.value.displayName)
newTimelineItems.insert(timelineStart, at: 0)
}
@@ -459,7 +459,7 @@ class RoomTimelineController: RoomTimelineControllerProtocol {
private func buildTimelineItem(for itemProxy: TimelineItemProxy) -> RoomTimelineItemProtocol? {
switch itemProxy {
case .event(let eventTimelineItem):
let timelineItem = timelineItemFactory.buildTimelineItem(for: eventTimelineItem, isDM: roomProxy.isEncryptedOneToOneRoom)
let timelineItem = timelineItemFactory.buildTimelineItem(for: eventTimelineItem, isDM: roomProxy.isDirectOneToOneRoom)
if let messageTimelineItem = timelineItem as? EventBasedMessageTimelineItemProtocol {
// Avoid fetching this over and over again as it changes states if it keeps failing to load

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b4453ac118d0dd1f35839453eaa3b738df0972d2e6c77e18d5a50736b671358
size 2019171
oid sha256:1645515771a470a87b2a6bce077fd4605cbc1bef9eaf5443568b5df90c2de311
size 176707

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3f62f20abbffc0f9cd035c5cc24e56d2ece53ad9d6a9e2dfbe9657eba1680b54
size 1974158
oid sha256:9631828c623d72046f50e0adde6c5310b53314e62bf29c50341815592ae2d8a6
size 176333

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:361078f56cb4e4178f51d42d11b92ec8452371876b740e3f014ba2a9fc13750e
size 1818925
oid sha256:ea029779d25f9371956629e00cdbd28555d9f33c965099ae5bea3ccca474ee29
size 188184

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3c90b601dcb25932fc4183cab05941d180d9b08307688cacc71f4397c217ff18
size 1988577
oid sha256:32dbe2fdb963e3f44abed48231db363ebcb2f2792ee5b6e987beeaba4c7d27e3
size 108943

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c85ef3dcec00111c6c6bb9fe6cfbb1f2bbf332631cc681ea41642f411a4c761e
size 1890475
oid sha256:d3df84c0006286d66189c53154fe3ae17acb53b21122ea7893bf3034e8b3654c
size 98431

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ec03de50d10d0dae27d01055898b1a4a6aa065424805a0f0845db4e18244eed9
size 2024510
oid sha256:c24082811d674e78690542d5ad4447fae4028a1b7d6e3b7182ce348f0422e1bd
size 181607

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98752592d5baf1e6221e471133ec8d911f1eaa3e81e78542c2fb57a8a0beb29f
size 1975139
oid sha256:8d2c3b773eb35ca1938e19eb413edefc154819ad296297d1db52d41bf4244a2b
size 177403

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8513ac0a552b5e1a71c5ef6508f3672c17ea4c421fcfd843980bade28a676672
size 1827124
oid sha256:6cba375d9786e5f3f60729d90ea80e04512928b1d99c25df5a3e12797e56feab
size 196127

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6139b5e77d31ef391b0845d507b160f820b3c45e50654943ad108c4b662f1cd9
size 2005800
oid sha256:99e979255bd6e0cdb76ec16cba8522f5610e5a14a80391cfb91875ff576c7237
size 120516

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0fde3ae365ead45c6789493ec6dcd5569f420d823d778ebe2549b36e1076052a
size 1895270
oid sha256:7b2b16b80f6f6d362c28f385b7bb55343a108494ec10a1204f92f8e224e971e7
size 101218

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2363b06b20e07963b9f698d22d03f5faae82d0f08bafaa557686026479be5c5
size 853847
oid sha256:bf9575beca228f4ed808a40f5fab5cc49ff3e14b8d4b25bfd5d24bf69a12cb89
size 121706

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9137ded58efa6b4cef1fa8fe7c799ac8df5a877e8f4088535d920209d3a88c27
size 825318
oid sha256:947f1bf8fdc8202333df2a4c11c77856de43bfec3e4c9286df332554f1ecc4f8
size 118228

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3c61afbdc71ee87f4e36dc23f0e2bd75884ef4c55e8b03bd56baa1e821e2a8bd
size 731130
oid sha256:5b5261fe4972edfc4056168497f9fe4145cef7b108985d607c4347acd6aeef8b
size 128093

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41450e59f11238219b376a97a79159ad9e75274bfa91830fa81840b29e7c7646
size 824980
oid sha256:c52cde3ef3bd16559d530ed97fee81c163cee4d7b1ab10aaed92ad37e2e33fe0
size 65335

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:068da1ad317aefc4ebed25f4ac259cd5fe46a5ce444b6e22051455d69bfea78e
size 756893
oid sha256:e61e6e702aac228161a0432be400886ba361c0d8888fbb3b7009d0522aeb4112
size 51837

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a41f110e51f8278fb4d0fcc397499adffb5b8d2079e2c67a4853514dd8448fd
size 861409
oid sha256:46731b3bef32a06409ed48eb4b2311a396def898d24c92d7e17c0d289e0a292a
size 128657

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f5192b90e7b04b85e2bf7d97fc96b0dd92624eb8cb6de9264b47df7cc1ddc67f
size 827032
oid sha256:271c66b0fc2805da5afdf54cec271ef9a9cf269f7e2ba792090908007b19acb8
size 120239

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4470efc9cf7421f961e34c32cf4136c5621f89b1266f34c790e6dbb16c2591e6
size 739258
oid sha256:83bb5f7f5eb52dec7256c42d97623638f866fe885b576f7fcdebdf881f972071
size 134322

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:05556ba65c08cce60531fad7e8ed4de4b75f5de7adfabb725b5d7a35276f10dd
size 841034
oid sha256:afb92349fbc394a29020f766a4618b0e1bf993bda0ebdc9f08bf58f13cbf50cd
size 79086

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eaa7027ce0d6ba02e75bc6b35cd7080a4cf217e6d36b3aa2bcebfce6355ad117
size 763528
oid sha256:4b820eab5aba492d8a78e37464bb6475fcf41bfe0c5a15f2deceb9b57cfe14ca
size 58259

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:69c8d1611151cd7356e8595eb8c320cea39469b162f8608a513d19b842b9fc14
size 174237
oid sha256:7b85a4d43317a3e429b63ca3b5e8c0302588ec79cd301ccd4dbe006f8fbabbcc
size 168419

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0f149aa6746040c30b0d07e75ea2594f2e98befd365421cd466031152835ee40
size 149948
oid sha256:f855bcf215c22c3e8f73adc493092c041bcc532ccc8044632a86e4eebdab45d3
size 144080

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98b2d3b1922ed3fdb9ae9f23f0801d4c6cc1c47eb22118a1c673028e3c3064b1
size 180087
oid sha256:4b0911b93749fea8d6d0e1e9fce015cd3b7e99c8f2005542f1a0468dc0da48d4
size 173188

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1fadb3e09d55ba1c9e0ba4082eea366422642c76ae731cad3172c522c57734d5
size 160375
oid sha256:1227fb48ff0248992eebb56931e54943bd344308f0f9de4ceb3871c7b72add9e
size 152712

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:84e62d4e5808da5e807e076179538e6cb42dafae0c1c1aabf3732dbc4bb7c8a0
size 112044
oid sha256:c1d7d735ffbb1d5ddf39e0a64b6a8520164ec675d605d930f5f4fb9d759962d9
size 106360

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f86bc2dd442d2a0c9ab5179a19dff28a24716b188d3267d8c64aecea6856a328
size 97074
oid sha256:3c4d1613cd852097d5350acbe7f197b5515f2487b550c4be74a4953fd5fc7494
size 91217

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a3937e498c27177646dae584d63ba4ee8eae44098956bab21d7869305ff32639
size 124185
oid sha256:bdfea363c096f74335c13b9db377acd924e2ac0de3b56dba1c1a8037ab43b16f
size 124309

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be13972396c7ed858d62628c251234f033af3f1e585118c092f039b94eaf133b
size 111276
oid sha256:74848803e9727d3a0f36941aa93a19e681f24c2d3e28c594a9275f38ad8160d8
size 106302