Merge pull request #2213 from stuartbreckenridge/swiftui
Add Feed Folder Picker
This commit is contained in:
commit
3e2bf6f301
@ -134,6 +134,11 @@ class AddWebFeedModel: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func smallIconImage(for container: Container) -> RSImage? {
|
||||
if let smallIconProvider = container as? SmallIconProvider {
|
||||
return smallIconProvider.smallIcon?.image
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ struct AddWebFeedView: View {
|
||||
Text("Add a Web Feed")
|
||||
.font(.title)
|
||||
Spacer()
|
||||
}
|
||||
}.padding()
|
||||
|
||||
LazyVGrid(columns: [GridItem(.fixed(75), spacing: 10, alignment: .trailing),GridItem(.fixed(400), spacing: 0, alignment: .leading) ], alignment: .leading, spacing: 10, pinnedViews: [], content:{
|
||||
|
||||
@ -82,7 +82,7 @@ struct AddWebFeedView: View {
|
||||
#if os(iOS)
|
||||
@ViewBuilder var iosForm: some View {
|
||||
NavigationView {
|
||||
Form {
|
||||
List {
|
||||
urlTextField
|
||||
providedNameTextField
|
||||
folderPicker
|
||||
@ -111,10 +111,8 @@ struct AddWebFeedView: View {
|
||||
}
|
||||
#endif
|
||||
|
||||
var urlTextField: some View {
|
||||
HStack {
|
||||
@ViewBuilder var urlTextField: some View {
|
||||
#if os(iOS)
|
||||
Text("Feed:")
|
||||
TextField("URL", text: $viewModel.providedURL)
|
||||
.disableAutocorrection(true)
|
||||
.autocapitalization(UITextAutocapitalizationType.none)
|
||||
@ -123,28 +121,32 @@ struct AddWebFeedView: View {
|
||||
.disableAutocorrection(true)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
var providedNameTextField: some View {
|
||||
HStack(alignment: .lastTextBaseline) {
|
||||
#if os(iOS)
|
||||
Text("Name:")
|
||||
#endif
|
||||
TextField("Optional", text: $viewModel.providedName)
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder var folderPicker: some View {
|
||||
#if os(iOS)
|
||||
Picker("Folder:", selection: $viewModel.selectedFolderIndex, content: {
|
||||
Picker("Folder", selection: $viewModel.selectedFolderIndex, content: {
|
||||
ForEach(0..<viewModel.containers.count, id: \.self, content: { index in
|
||||
if let containerName = (viewModel.containers[index] as? DisplayNameProvider)?.nameForDisplay {
|
||||
if viewModel.containers[index] is Folder {
|
||||
Text("\(viewModel.containers[index].account?.nameForDisplay ?? "") / \(containerName)").tag(index)
|
||||
HStack(alignment: .top) {
|
||||
if let image = viewModel.smallIconImage(for: viewModel.containers[index]) {
|
||||
Image(rsImage: image)
|
||||
}
|
||||
Text("\(containerName)").tag(index)
|
||||
}.padding(.leading, 16)
|
||||
} else {
|
||||
HStack(alignment: .top) {
|
||||
if let image = viewModel.smallIconImage(for: viewModel.containers[index]) {
|
||||
Image(rsImage: image)
|
||||
}
|
||||
Text(containerName).tag(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
#else
|
||||
@ -152,7 +154,12 @@ struct AddWebFeedView: View {
|
||||
ForEach(0..<viewModel.containers.count, id: \.self, content: { index in
|
||||
if let containerName = (viewModel.containers[index] as? DisplayNameProvider)?.nameForDisplay {
|
||||
if viewModel.containers[index] is Folder {
|
||||
Text("\(viewModel.containers[index].account?.nameForDisplay ?? "") / \(containerName)").padding(.leading, 2).tag(index)
|
||||
HStack {
|
||||
if let image = viewModel.smallIconImage(for: viewModel.containers[index]) {
|
||||
Image(rsImage: image)
|
||||
}
|
||||
Text("\(containerName)")
|
||||
}.padding(.leading, 2).tag(index)
|
||||
} else {
|
||||
Text(containerName).padding(.leading, 2).tag(index)
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "localAccountMac.pdf",
|
||||
"filename" : "mac.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
|
Binary file not shown.
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalMac.imageset/mac.pdf
vendored
Normal file
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalMac.imageset/mac.pdf
vendored
Normal file
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "localAccountPad.pdf",
|
||||
"filename" : "ipad.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
|
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalPad.imageset/ipad.pdf
vendored
Normal file
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalPad.imageset/ipad.pdf
vendored
Normal file
Binary file not shown.
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "localAccountPhone.pdf",
|
||||
"filename" : "phone.pdf",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
|
Binary file not shown.
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalPhone.imageset/phone.pdf
vendored
Normal file
BIN
Multiplatform/Shared/Assets.xcassets/accountLocalPhone.imageset/phone.pdf
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user