add aboutsection
This commit is contained in:
parent
cacb25d34a
commit
b14523a136
@ -27,6 +27,7 @@ struct SettingsView: View {
|
|||||||
|
|
||||||
if isMessengerModeEnabled {
|
if isMessengerModeEnabled {
|
||||||
messengerProfileHeaderSection
|
messengerProfileHeaderSection
|
||||||
|
aboutSection
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Профиль
|
// MARK: - Профиль
|
||||||
@ -360,6 +361,88 @@ struct SettingsView: View {
|
|||||||
formatter.timeStyle = .none
|
formatter.timeStyle = .none
|
||||||
return formatter
|
return formatter
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
private var aboutSection: some View {
|
||||||
|
if messengerProfile != nil || isMessengerProfileLoading || messengerProfileError != nil {
|
||||||
|
Section {
|
||||||
|
card {
|
||||||
|
VStack(spacing: 0) {
|
||||||
|
|
||||||
|
if let login = loginDisplay {
|
||||||
|
infoRow(
|
||||||
|
title: NSLocalizedString("Юзернейм", comment: ""),
|
||||||
|
value: login
|
||||||
|
)
|
||||||
|
}else{
|
||||||
|
infoRow(
|
||||||
|
title: NSLocalizedString("Юзернейм", comment: ""),
|
||||||
|
value: "Неизвестный пользователь"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if let membership = membershipDescription {
|
||||||
|
rowDivider
|
||||||
|
infoRow(
|
||||||
|
title: NSLocalizedString("Дата регистрации в Yobble", comment: ""),
|
||||||
|
value: membership
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if loginDisplay != nil || membershipDescription != nil {
|
||||||
|
rowDivider
|
||||||
|
}
|
||||||
|
|
||||||
|
infoRow(
|
||||||
|
title: NSLocalizedString("Ваш рейтинг", comment: "Message profile rating title"),
|
||||||
|
value: ratingDisplayValue
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func infoRow(icon: String? = nil, title: String, value: String) -> some View {
|
||||||
|
HStack(alignment: .top, spacing: 12) {
|
||||||
|
if let icon {
|
||||||
|
iconBackground(color: .accentColor.opacity(0.18)) {
|
||||||
|
Image(systemName: icon)
|
||||||
|
.font(.system(size: 17, weight: .semibold))
|
||||||
|
.foregroundColor(.accentColor)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VStack(alignment: .leading, spacing: 4) {
|
||||||
|
Text(title)
|
||||||
|
.font(.caption)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
Text(value)
|
||||||
|
.font(.body)
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer()
|
||||||
|
}
|
||||||
|
.padding(.vertical, 4)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func iconBackground<Content: View>(color: Color, @ViewBuilder content: () -> Content) -> some View {
|
||||||
|
RoundedRectangle(cornerRadius: 14, style: .continuous)
|
||||||
|
.fill(color)
|
||||||
|
.frame(width: 44, height: 44)
|
||||||
|
.overlay(content())
|
||||||
|
}
|
||||||
|
|
||||||
|
private func card<Content: View>(@ViewBuilder content: () -> Content) -> some View {
|
||||||
|
VStack(alignment: .leading, spacing: 16) {
|
||||||
|
content()
|
||||||
|
}
|
||||||
|
.padding(20)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
.background(
|
||||||
|
RoundedRectangle(cornerRadius: 28, style: .continuous)
|
||||||
|
.fill(Color(UIColor.secondarySystemGroupedBackground))
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private struct LegacySupportBanner: View {
|
private struct LegacySupportBanner: View {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user