ChWebsiteApp/CHDataManagement/Views/Settings/Pages/PageSettingsDetailView.swift
2025-02-05 21:21:41 +01:00

75 lines
2.6 KiB
Swift

import SwiftUI
struct PageSettingsDetailView: View {
@Binding
var language: ContentLanguage
@ObservedObject
var pageSettings: PageSettings
var body: some View {
ScrollView {
VStack(alignment: .leading) {
IntegerPropertyView(
title: "Content Width",
value: $pageSettings.contentWidth,
footer: "The maximum width of the content in pages (in pixels)")
IntegerPropertyView(
title: "Fullscreen Image Width",
value: $pageSettings.largeImageWidth,
footer: "The maximum width of images that are diplayed fullscreen")
IntegerPropertyView(
title: "Page Link Image Width",
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: $pageSettings.defaultCssFile,
allowedType: .asset)
FilePropertyView(
title: "Code Highlighting File",
footer: "The JavaScript file to provide syntax highlighting of code blocks",
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: $pageSettings.modelViewerJsFile,
allowedType: .asset)
FilePropertyView(
title: "Image Comparison CSS File",
footer: "The CSS file to provide image comparisons",
selectedFile: $pageSettings.imageCompareCssFile,
allowedType: .asset)
FilePropertyView(
title: "Image Comparison JaveScript File",
footer: "The JavaScript file to provide image comparisons",
selectedFile: $pageSettings.imageCompareJsFile,
allowedType: .asset)
LocalizedPageSettingsView(settings: pageSettings.localized(in: language))
.id(language)
}
.padding()
}
}
}
#Preview {
PageSettingsDetailView(
language: .constant(.english),
pageSettings: .default)
.padding()
}