Move required files to settings
This commit is contained in:
@ -79,8 +79,7 @@ struct AddPageView: View {
|
||||
english: .init(content: content,
|
||||
urlString: "page",
|
||||
title: "A Title"),
|
||||
tags: [],
|
||||
requiredFiles: [])
|
||||
tags: [])
|
||||
content.add(page)
|
||||
selectedPage = page
|
||||
dismissSheet()
|
||||
|
@ -12,9 +12,6 @@ struct PageDetailView: View {
|
||||
@ObservedObject
|
||||
private var page: Page
|
||||
|
||||
@State
|
||||
private var showFileSelectionSheet = false
|
||||
|
||||
private var transferImage: (language: ContentLanguage, image: FileResource)? {
|
||||
page.localized(in: language.next).linkPreview.image.map { (language.next, $0) }
|
||||
}
|
||||
@ -23,14 +20,6 @@ struct PageDetailView: View {
|
||||
self.page = page
|
||||
}
|
||||
|
||||
private var requiredFilesText: String {
|
||||
switch page.requiredFiles.count {
|
||||
case 0: return "No files"
|
||||
case 1: return "1 file"
|
||||
default: return "\(page.requiredFiles.count) files"
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
VStack(alignment: .leading) {
|
||||
@ -79,24 +68,6 @@ struct PageDetailView: View {
|
||||
footer: "The date when the page content ended")
|
||||
.disabled(page.isExternalUrl)
|
||||
|
||||
GenericPropertyView(
|
||||
title: "Required files",
|
||||
footer: "The additional files required by the page") {
|
||||
HStack {
|
||||
Image(systemSymbol: .squareAndPencilCircleFill)
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fit)
|
||||
.frame(height: 20)
|
||||
Text(requiredFilesText)
|
||||
Spacer()
|
||||
}
|
||||
.padding(.vertical, 8)
|
||||
.contentShape(Rectangle())
|
||||
.onTapGesture {
|
||||
showFileSelectionSheet = true
|
||||
}
|
||||
}
|
||||
|
||||
LocalizedPageDetailView(
|
||||
isExternalPage: page.isExternalUrl,
|
||||
page: page.localized(in: language),
|
||||
@ -105,9 +76,6 @@ struct PageDetailView: View {
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
.sheet(isPresented: $showFileSelectionSheet) {
|
||||
MultiFileSelectionView(selectedFiles: $page.requiredFiles, insertSorted: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,18 @@ struct GeneralSettingsDetailView: View {
|
||||
@ObservedObject
|
||||
var generalSettings: GeneralSettings
|
||||
|
||||
@State
|
||||
private var showFileSelectionSheet = false
|
||||
|
||||
private var requiredFilesText: String {
|
||||
let count = generalSettings.requiredFiles.count
|
||||
switch count {
|
||||
case 0: return "No files"
|
||||
case 1: return "1 file"
|
||||
default: return "\(count) files"
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
VStack(alignment: .leading) {
|
||||
@ -19,7 +31,7 @@ struct GeneralSettingsDetailView: View {
|
||||
footer: "The maximum width of a link preview image")
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Link Preview Image Height",
|
||||
title: "Linfk Preview Image Height",
|
||||
value: $generalSettings.linkPreviewImageHeight,
|
||||
footer: "The maximum height of a link preview image")
|
||||
|
||||
@ -47,8 +59,29 @@ struct GeneralSettingsDetailView: View {
|
||||
title: "Push Notification Access Token",
|
||||
text: $generalSettings.pushNotificationAccessToken,
|
||||
footer: "The access token to use for sending push notifications")
|
||||
|
||||
GenericPropertyView(
|
||||
title: "Required files",
|
||||
footer: "The additional files required by the page") {
|
||||
HStack {
|
||||
Image(systemSymbol: .squareAndPencilCircleFill)
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fit)
|
||||
.frame(height: 20)
|
||||
Text(requiredFilesText)
|
||||
Spacer()
|
||||
}
|
||||
.padding(.vertical, 8)
|
||||
.contentShape(Rectangle())
|
||||
.onTapGesture {
|
||||
showFileSelectionSheet = true
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
.sheet(isPresented: $showFileSelectionSheet) {
|
||||
MultiFileSelectionView(selectedFiles: $generalSettings.requiredFiles, insertSorted: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user