[iOS] Create public space #143

- Update after design review
This commit is contained in:
Gil Eluard
2021-12-01 23:56:59 +01:00
parent 1217be55ab
commit 4890ce2108
109 changed files with 1122 additions and 529 deletions
@@ -1,44 +0,0 @@
// File created from SimpleUserProfileExample
// $ createScreen.sh Spaces/SpaceCreation/SpaceCreationPostProcess SpaceCreationPostProcess
//
// Copyright 2021 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 Foundation
enum SpaceCreationPostProcessPresence {
case online
case idle
case offline
}
extension SpaceCreationPostProcessPresence {
var title: String {
switch self {
case .online:
return VectorL10n.roomParticipantsOnline
case .idle:
return VectorL10n.roomParticipantsIdle
case .offline:
return VectorL10n.roomParticipantsOffline
}
}
}
extension SpaceCreationPostProcessPresence: CaseIterable { }
extension SpaceCreationPostProcessPresence: Identifiable {
var id: Self { self }
}
@@ -16,7 +16,7 @@
import Foundation
enum SpaceCreationPostProcessTaskState: CaseIterable {
enum SpaceCreationPostProcessTaskState: CaseIterable, Equatable {
static var allCases: [SpaceCreationPostProcessTaskState] = [.none, .started, .success, .failure]
case none
@@ -25,7 +25,7 @@ enum SpaceCreationPostProcessTaskState: CaseIterable {
case failure
}
enum SpaceCreationPostProcessTaskType {
enum SpaceCreationPostProcessTaskType: Equatable {
case createSpace
case uploadAvatar
case createRoom(_ roomName: String)
@@ -33,7 +33,7 @@ enum SpaceCreationPostProcessTaskType {
case inviteUsersByEmail
}
struct SpaceCreationPostProcessTask {
struct SpaceCreationPostProcessTask: Equatable {
let type: SpaceCreationPostProcessTaskType
let title: String
var state: SpaceCreationPostProcessTaskState
@@ -41,4 +41,8 @@ struct SpaceCreationPostProcessTask {
return state == .failure || state == .success
}
var subTasks: [SpaceCreationPostProcessTask] = []
static func == (lhs: SpaceCreationPostProcessTask, rhs: SpaceCreationPostProcessTask) -> Bool {
return lhs.type == rhs.type && lhs.title == rhs.title && lhs.state == rhs.state && lhs.subTasks == lhs.subTasks
}
}
@@ -19,6 +19,8 @@
import Foundation
struct SpaceCreationPostProcessViewState: BindableState {
var avatar: AvatarInput
var avatarImage: UIImage?
var tasks: [SpaceCreationPostProcessTask]
var isFinished: Bool
var errorCount: Int