mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Implementation for all navigations inside the space settings aside the left space action
# Conflicts: # ElementX/Sources/FlowCoordinators/SpaceSettingsFlowCoordinator.swift
This commit is contained in:
@@ -63,6 +63,10 @@ final class SpaceSettingsFlowCoordinator: FlowCoordinatorProtocol {
|
|||||||
|
|
||||||
private let stateMachine: StateMachine<State, Event>
|
private let stateMachine: StateMachine<State, Event>
|
||||||
private var cancellables = Set<AnyCancellable>()
|
private var cancellables = Set<AnyCancellable>()
|
||||||
|
private var modalNavigationStackCoordinator: NavigationStackCoordinator?
|
||||||
|
|
||||||
|
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
|
||||||
|
private var rolesAndPermissionsFlowCoordinator: RoomRolesAndPermissionsFlowCoordinator?
|
||||||
|
|
||||||
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
|
private var membersFlowCoordinator: RoomMembersFlowCoordinator?
|
||||||
private var rolesAndPermissionsFlowCoordinator: RoomRolesAndPermissionsFlowCoordinator?
|
private var rolesAndPermissionsFlowCoordinator: RoomRolesAndPermissionsFlowCoordinator?
|
||||||
|
|||||||
@@ -39,3 +39,37 @@ struct OverridableAvatarImage: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension View {
|
||||||
|
func clipAvatar(isSpace: Bool, size: CGFloat) -> some View {
|
||||||
|
modifier(ClipAvatarModifier(isSpace: isSpace, size: size))
|
||||||
|
}
|
||||||
|
|
||||||
|
func clipAvatar(isSpace: Bool, scaledSize: ScaledMetric<CGFloat>) -> some View {
|
||||||
|
modifier(ClipAvatarModifier(isSpace: isSpace, scaledSize: scaledSize))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ClipAvatarModifier: ViewModifier {
|
||||||
|
private let isSpace: Bool
|
||||||
|
@ScaledMetric private var scaledSize: CGFloat
|
||||||
|
|
||||||
|
init(isSpace: Bool, size: CGFloat) {
|
||||||
|
self.isSpace = isSpace
|
||||||
|
_scaledSize = ScaledMetric(wrappedValue: size)
|
||||||
|
}
|
||||||
|
|
||||||
|
init(isSpace: Bool, scaledSize: ScaledMetric<CGFloat>) {
|
||||||
|
self.isSpace = isSpace
|
||||||
|
_scaledSize = scaledSize
|
||||||
|
}
|
||||||
|
|
||||||
|
func body(content: Content) -> some View {
|
||||||
|
content
|
||||||
|
.clipShape(avatarShape)
|
||||||
|
}
|
||||||
|
|
||||||
|
private var avatarShape: some Shape {
|
||||||
|
isSpace ? AnyShape(RoundedRectangle(cornerRadius: scaledSize / 4)) : AnyShape(Circle())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user