Improve page indicators, adding items
This commit is contained in:
@@ -1,5 +1,40 @@
|
||||
import SwiftUI
|
||||
|
||||
private struct PageListItem: View {
|
||||
|
||||
@Environment(\.language)
|
||||
private var language
|
||||
|
||||
@ObservedObject
|
||||
var page: Page
|
||||
|
||||
var body: some View {
|
||||
HStack {
|
||||
LocalizedPageListItem(page: page.localized(in: language))
|
||||
Spacer()
|
||||
if page.isExternalUrl {
|
||||
TextIndicator(text: "External")
|
||||
} else if page.isDraft {
|
||||
TextIndicator(text: "Draft", background: .yellow)
|
||||
} else {
|
||||
ForEach(page.missingContentLanguages, id: \.self) { language in
|
||||
TextIndicator(text: language.shortText, background: Color.red)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private struct LocalizedPageListItem: View {
|
||||
|
||||
@ObservedObject
|
||||
var page: LocalizedPage
|
||||
|
||||
var body: some View {
|
||||
Text(page.title)
|
||||
}
|
||||
}
|
||||
|
||||
struct PageListView: View {
|
||||
|
||||
@Environment(\.language)
|
||||
@@ -31,13 +66,8 @@ struct PageListView: View {
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.padding(.horizontal, 8)
|
||||
List(filteredPages, selection: $selectedPage) { page in
|
||||
HStack {
|
||||
Text(page.title(in: language))
|
||||
Spacer()
|
||||
if page.isDraft {
|
||||
DraftIndicator()
|
||||
}
|
||||
}.tag(page)
|
||||
PageListItem(page: page)
|
||||
.tag(page)
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
|
Reference in New Issue
Block a user