struct AdvancedSettings: View {
@AppStorage("backendUrl") var backendUrl: String = ""
+ @AppStorage("backendFormat") var outputFormats: OutputFormatSetting = .gifOnly
@AppStorage("keepFiles") var keepFiles = true
+ var parsedBackendUrl: URL? {
+ URL(string: backendUrl)
+ }
+
var body: some View {
Form {
- VStack (alignment: .leading) {
+ VStack (alignment: .center) {
LabeledContent("Backend URL") {
- TextField("", text: $backendUrl)
- }.font(.headline)
- LabeledContent("Keep files after remote upload") {
- Toggle("", isOn: $keepFiles)
+ TextField("", text: $backendUrl).font(.body)
}.font(.headline)
+ .help("The Backend URL to use. If this is empty, no backend will be used and the options below won't have an effect.")
+ Picker(selection: $outputFormats, label: Text("Backend Format").font(.headline)) {
+ Text("GIF")
+ .tag(OutputFormatSetting.gifOnly)
+ .padding(.horizontal, 4.0)
+ .padding(.vertical, 2.0)
+ Text("MP4")
+ .tag(OutputFormatSetting.mp4Only)
+ .padding(.horizontal, 4.0)
+ .padding(.vertical, 2.0)
+ }
+ .pickerStyle(.radioGroup)
+ .disabled(parsedBackendUrl == nil)
+ .help("The format picked here will be generated regardless of what option you pick in the output settings. It doesn't prevent files from being rendered.")
+ Toggle("Keep Local Files", isOn: $keepFiles)
+ .font(.headline)
+ .disabled(parsedBackendUrl == nil)
+ .padding(.vertical, 8.0)
+ .help("If this is off, locally generated recordings will be deleted immediately after a successful upload.")
HStack {
- Text("These settings can break things!")
- Button {
- print("Not yet!")
- } label: {
+ Text("These settings can break things! Please make sure you understand how to use them before enabling.")
+ .lineLimit(3...10)
+ Link(destination: URL(string: "https://captura.tranquil.systems")!) {
Image(systemName: "info.circle")
}.buttonStyle(.borderless)
}
+ Spacer()
}
}
}