Update based on comments from Doug

This commit is contained in:
David Langley
2021-09-09 17:00:45 +01:00
parent 2d212ddd8e
commit c80dfcd1d0
8 changed files with 42 additions and 45 deletions
@@ -21,9 +21,12 @@ struct TemplateUserProfile: View {
// MARK: - Properties
// MARK: Private
@Environment(\.theme) private var theme: ThemeSwiftUI
// MARK: Public
@Environment(\.theme) var theme: ThemeSwiftUI
@ObservedObject var viewModel: TemplateUserProfileViewModel
var body: some View {
@@ -35,33 +38,26 @@ struct TemplateUserProfile: View {
)
Divider()
VStack{
HStack(alignment: .center){
Spacer()
Text("More great user content!")
.font(theme.fonts.title2)
.foregroundColor(theme.colors.secondaryContent)
Spacer()
}
Text("More great user content!")
.font(theme.fonts.title2)
.foregroundColor(theme.colors.secondaryContent)
}
.frame(maxHeight: .infinity)
}
.background(theme.colors.background)
.frame(maxHeight: .infinity)
.navigationTitle(viewModel.viewState.displayName ?? "")
.navigationBarItems(leading: leftButton, trailing: rightButton)
}
// MARK: Private
private var leftButton: some View {
Button(VectorL10n.cancel) {
viewModel.proccess(viewAction: .cancel)
}
}
private var rightButton: some View {
Button(VectorL10n.done) {
viewModel.proccess(viewAction: .cancel)
.toolbar {
ToolbarItem(placement: .primaryAction) {
Button(VectorL10n.done) {
viewModel.process(viewAction: .cancel)
}
}
ToolbarItem(placement: .cancellationAction) {
Button(VectorL10n.cancel) {
viewModel.process(viewAction: .cancel)
}
}
}
}
}
@@ -21,9 +21,10 @@ struct TemplateUserProfileHeader: View {
// MARK: - Properties
// MARK: Public
// MARK: Private
@Environment(\.theme) private var theme: ThemeSwiftUI
@Environment(\.theme) var theme: ThemeSwiftUI
// MARK: Public
let avatar: AvatarInputProtocol?
let displayName: String?
let presence: TemplateUserProfilePresence
@@ -31,17 +32,13 @@ struct TemplateUserProfileHeader: View {
var body: some View {
VStack {
if let avatar = avatar {
HStack{
Spacer()
AvatarImage(avatarData: avatar, size: .xxLarge)
Spacer()
}
AvatarImage(avatarData: avatar, size: .xxLarge)
.padding(.vertical)
}
VStack(spacing: 8){
Text(displayName ?? "")
.font(theme.fonts.title3)
TemplateUserProfilePresenceView(presense: presence)
TemplateUserProfilePresenceView(presence: presence)
}
}
}
@@ -22,25 +22,24 @@ struct TemplateUserProfilePresenceView: View {
// MARK: - Properties
// MARK: Public
let presense: TemplateUserProfilePresence
let presence: TemplateUserProfilePresence
var body: some View {
HStack {
Image(systemName: "circle.fill")
.resizable()
.frame(width: 8, height: 8)
.foregroundColor(foregroundColor)
Text(presense.title)
Text(presence.title)
.font(.subheadline)
}
.foregroundColor(foregroundColor)
.padding(0)
}
// MARK: Private
// MARK: View Components
private var foregroundColor: Color {
switch presense {
switch presence {
case .online:
return .green
case .idle:
@@ -59,7 +58,7 @@ struct TemplateUserProfilePresenceView_Previews: PreviewProvider {
VStack(alignment:.leading){
Text("Presence")
ForEach(TemplateUserProfilePresence.allCases) { presence in
TemplateUserProfilePresenceView(presense: presence)
TemplateUserProfilePresenceView(presence: presence)
}
}
}