Add empty page text, playlist text to settings
This commit is contained in:
@ -36,8 +36,24 @@ struct AudioSettingsDetailView: View {
|
||||
footer: "The CSS file to provide the functionality for the audio player",
|
||||
selectedFile: $audioPlayer.audioPlayerJsFile,
|
||||
allowedType: .asset)
|
||||
|
||||
LocalizedAudioSettingsDetailView(settings: audioPlayer.localized(in: language))
|
||||
.id(language)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct LocalizedAudioSettingsDetailView: View {
|
||||
|
||||
@ObservedObject
|
||||
var settings: LocalizedAudioPlayerSettings
|
||||
|
||||
var body: some View {
|
||||
StringPropertyView(
|
||||
title: "Playlist Text",
|
||||
text: $settings.playlistText,
|
||||
footer: "The text on the audio player indicating the playlist")
|
||||
}
|
||||
}
|
||||
|
@ -14,9 +14,9 @@ struct GenerationDetailView: View {
|
||||
case .navigationBar:
|
||||
NavigationBarSettingsView()
|
||||
case .postFeed:
|
||||
PostFeedSettingsView()
|
||||
PostFeedSettingsView(postSettings: content.settings.posts)
|
||||
case .pages:
|
||||
PageSettingsDetailView()
|
||||
PageSettingsDetailView(pageSettings: content.settings.pages)
|
||||
case .tagOverview:
|
||||
TagOverviewDetailView()
|
||||
case .audioPlayer:
|
||||
|
@ -0,0 +1,21 @@
|
||||
import SwiftUI
|
||||
|
||||
struct LocalizedPageSettingsView: View {
|
||||
|
||||
@ObservedObject
|
||||
var settings: LocalizedPageSettings
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
StringPropertyView(
|
||||
title: "Empty Page Title",
|
||||
text: $settings.emptyPageTitle,
|
||||
footer: "The title to show for the box on an empty page")
|
||||
|
||||
TextFieldPropertyView(
|
||||
title: "Empty Page Text",
|
||||
text: $settings.emptyPageText,
|
||||
footer: "The text to show in the box on an empty page")
|
||||
}
|
||||
}
|
||||
}
|
@ -5,8 +5,8 @@ struct PageSettingsDetailView: View {
|
||||
@Environment(\.language)
|
||||
private var language
|
||||
|
||||
@EnvironmentObject
|
||||
private var content: Content
|
||||
@ObservedObject
|
||||
var pageSettings: PageSettings
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
@ -17,50 +17,52 @@ struct PageSettingsDetailView: View {
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Content Width",
|
||||
value: $content.settings.pages.contentWidth,
|
||||
value: $pageSettings.contentWidth,
|
||||
footer: "The maximum width of the content in pages (in pixels)")
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Fullscreen Image Width",
|
||||
value: $content.settings.pages.largeImageWidth,
|
||||
value: $pageSettings.largeImageWidth,
|
||||
footer: "The maximum width of images that are diplayed fullscreen")
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Page Link Image Width",
|
||||
value: $content.settings.pages.pageLinkImageSize,
|
||||
value: $pageSettings.pageLinkImageSize,
|
||||
footer: "The maximum width of images diplayed as thumbnails on page links")
|
||||
|
||||
FilePropertyView(
|
||||
title: "Default CSS File",
|
||||
footer: "The CSS file containing the styling of all pages",
|
||||
selectedFile: $content.settings.pages.defaultCssFile,
|
||||
selectedFile: $pageSettings.defaultCssFile,
|
||||
allowedType: .asset)
|
||||
|
||||
FilePropertyView(
|
||||
title: "Code Highlighting File",
|
||||
footer: "The JavaScript file to provide syntax highlighting of code blocks",
|
||||
selectedFile: $content.settings.pages.codeHighlightingJsFile,
|
||||
selectedFile: $pageSettings.codeHighlightingJsFile,
|
||||
allowedType: .asset)
|
||||
|
||||
FilePropertyView(
|
||||
title: "3D Model Viewer File",
|
||||
footer: "The JavaScript file to provide the functionality for the 3D model viewer",
|
||||
selectedFile: $content.settings.pages.modelViewerJsFile,
|
||||
selectedFile: $pageSettings.modelViewerJsFile,
|
||||
allowedType: .asset)
|
||||
|
||||
|
||||
FilePropertyView(
|
||||
title: "Image Comparison CSS File",
|
||||
footer: "The CSS file to provide image comparisons",
|
||||
selectedFile: $content.settings.pages.imageCompareCssFile,
|
||||
selectedFile: $pageSettings.imageCompareCssFile,
|
||||
allowedType: .asset)
|
||||
|
||||
FilePropertyView(
|
||||
title: "Image Comparison JaveScript File",
|
||||
footer: "The JavaScript file to provide image comparisons",
|
||||
selectedFile: $content.settings.pages.imageCompareJsFile,
|
||||
selectedFile: $pageSettings.imageCompareJsFile,
|
||||
allowedType: .asset)
|
||||
|
||||
LocalizedPageSettingsView(settings: pageSettings.localized(in: language))
|
||||
.id(language)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
@ -69,7 +71,6 @@ struct PageSettingsDetailView: View {
|
||||
|
||||
|
||||
#Preview {
|
||||
PageSettingsDetailView()
|
||||
.environmentObject(Content.mock)
|
||||
PageSettingsDetailView(pageSettings: .default)
|
||||
.padding()
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ struct PostFeedSettingsView: View {
|
||||
@Environment(\.language)
|
||||
private var language
|
||||
|
||||
@EnvironmentObject
|
||||
private var content: Content
|
||||
@ObservedObject
|
||||
var postSettings: PostSettings
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
@ -16,31 +16,32 @@ struct PostFeedSettingsView: View {
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Content Width",
|
||||
value: $content.settings.posts.contentWidth,
|
||||
value: $postSettings.contentWidth,
|
||||
footer: "The maximum width of the content the post feed (in pixels)")
|
||||
|
||||
IntegerPropertyView(
|
||||
title: "Posts Per Page",
|
||||
value: $content.settings.posts.postsPerPage,
|
||||
value: $postSettings.postsPerPage,
|
||||
footer: "The maximum number of posts displayed on a single page")
|
||||
|
||||
FilePropertyView(
|
||||
title: "Default CSS File",
|
||||
footer: "The CSS file containing the styling of all post pages",
|
||||
selectedFile: $content.settings.posts.defaultCssFile)
|
||||
selectedFile: $postSettings.defaultCssFile)
|
||||
|
||||
FilePropertyView(
|
||||
title: "Swiper CSS File",
|
||||
footer: "The CSS file containing the styling of image galleries in post feeds",
|
||||
selectedFile: $content.settings.posts.swiperCssFile)
|
||||
selectedFile: $postSettings.swiperCssFile)
|
||||
|
||||
FilePropertyView(
|
||||
title: "Swiper JavaScript File",
|
||||
footer: "The JavaScript file to load the image gallery code in post feeds",
|
||||
selectedFile: $content.settings.posts.swiperJsFile)
|
||||
selectedFile: $postSettings.swiperJsFile)
|
||||
|
||||
LocalizedPostFeedSettingsView(
|
||||
settings: content.settings.localized(in: language))
|
||||
settings: postSettings.localized(in: language))
|
||||
.id(language)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
@ -49,7 +50,6 @@ struct PostFeedSettingsView: View {
|
||||
|
||||
|
||||
#Preview {
|
||||
PostFeedSettingsView()
|
||||
.environmentObject(Content.mock)
|
||||
PostFeedSettingsView(postSettings: .default)
|
||||
.padding()
|
||||
}
|
||||
|
Reference in New Issue
Block a user