Enable room list invites by default and remove old code paths

This commit is contained in:
Stefan Ceriu
2024-05-09 12:05:28 +03:00
committed by Stefan Ceriu
parent 65310acc64
commit a401976b2b
60 changed files with 27 additions and 1155 deletions
@@ -32,11 +32,7 @@ enum RoomListFilter: Int, CaseIterable, Identifiable {
case invites
static var availableFilters: [RoomListFilter] {
if ServiceLocator.shared.settings.roomListInvitesEnabled {
return RoomListFilter.allCases
} else {
return RoomListFilter.allCases.filter { !($0 == .invites) }
}
RoomListFilter.allCases
}
var localizedName: String {
@@ -111,8 +111,7 @@ struct HomeScreenContent: View {
private var topSection: some View {
// An empty VStack causes glitches within the room list
if context.viewState.shouldShowFilters ||
context.viewState.shouldShowRecoveryKeyConfirmationBanner ||
context.viewState.shouldShowInvitesButton {
context.viewState.shouldShowRecoveryKeyConfirmationBanner {
VStack(spacing: 0) {
if context.viewState.shouldShowFilters {
RoomListFiltersView(state: $context.filtersState)
@@ -121,14 +120,6 @@ struct HomeScreenContent: View {
if context.viewState.shouldShowRecoveryKeyConfirmationBanner {
HomeScreenRecoveryKeyConfirmationBanner(context: context)
}
if context.viewState.shouldShowInvitesButton {
HomeScreenInvitesButton(title: L10n.actionInvitesList, hasBadge: context.viewState.hasUnreadPendingInvitations) {
context.send(viewAction: .selectInvites)
}
.accessibilityIdentifier(A11yIdentifiers.homeScreen.invites)
.frame(maxWidth: .infinity, alignment: .trailing)
}
}
.background(Color.compound.bgCanvasDefault)
}
@@ -112,13 +112,11 @@ struct HomeScreenInviteCell: View {
context.send(viewAction: .declineInvite(roomIdentifier: room.id))
}
.buttonStyle(.compound(.secondary, size: .medium))
.accessibilityIdentifier(A11yIdentifiers.invitesScreen.decline)
Button(L10n.actionAccept) {
context.send(viewAction: .acceptInvite(roomIdentifier: room.id))
}
.buttonStyle(.compound(.primary, size: .medium))
.accessibilityIdentifier(A11yIdentifiers.invitesScreen.accept)
}
}
@@ -1,62 +0,0 @@
//
// Copyright 2023 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 SwiftUI
struct HomeScreenInvitesButton: View {
let title: String
let hasBadge: Bool
let action: () -> Void
var body: some View {
Button(action: action) {
HStack(spacing: 8.0) {
Text(title)
.foregroundColor(.compound.textPrimary)
.font(.compound.bodyMDSemibold)
if hasBadge {
badge
}
}
.padding(.trailing, 16.0)
.padding(.leading, 64.0)
.padding(.vertical, 8.0)
}
}
// MARK: - Private
private var badge: some View {
Circle()
.scaledFrame(size: 12)
.foregroundColor(.compound.iconAccentTertiary)
}
}
struct HomeScreenInvitesButton_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
HomeScreenInvitesButton(title: "Invites", hasBadge: true, action: { })
.previewDisplayName("Badge on")
HomeScreenInvitesButton(title: "Invites", hasBadge: false, action: { })
.previewDisplayName("Badge off")
HomeScreenInvitesButton(title: "Invites", hasBadge: true, action: { })
.previewDisplayName("Badge on (AX1)")
.dynamicTypeSize(.accessibility1)
}
}