mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 17:12:45 +02:00
Update based on comments from Doug
This commit is contained in:
+18
-22
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-8
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-6
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user