60 lines
2.0 KiB
Swift
60 lines
2.0 KiB
Swift
import SwiftUI
|
|
|
|
struct AudioSettingsDetailView: View {
|
|
|
|
@Environment(\.language)
|
|
private var language
|
|
|
|
@ObservedObject
|
|
var audioPlayer: AudioPlayerSettings
|
|
|
|
var body: some View {
|
|
ScrollView {
|
|
VStack(alignment: .leading) {
|
|
DetailTitle(
|
|
title: "Audio Player Settings",
|
|
text: "Configure the files and settings for the audio player components")
|
|
|
|
IntegerPropertyView(
|
|
title: "Playlist Cover Image Size",
|
|
value: $audioPlayer.playlistCoverImageSize,
|
|
footer: "The maximum size of the album cover image in a playlist audio player (in pixels)")
|
|
|
|
IntegerPropertyView(
|
|
title: "Small Album Cover Image Size",
|
|
value: $audioPlayer.smallCoverImageSize,
|
|
footer: "The maximum size of the album cover image in a single file audio player (in pixels)")
|
|
|
|
FilePropertyView(
|
|
title: "Audio Player CSS File",
|
|
footer: "The CSS file to provide the style for the audio player",
|
|
selectedFile: $audioPlayer.audioPlayerCssFile,
|
|
allowedType: .asset)
|
|
|
|
FilePropertyView(
|
|
title: "Audio Player JavaScript File",
|
|
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")
|
|
}
|
|
}
|