import SwiftUI import SFSafeSymbols struct WebDetailView: View { @EnvironmentObject private var content: Content @EnvironmentObject private var server: WebServer var text: String { server.isRunning ? "Stop" : "Start" } var body: some View { VStack { TextField("", text: $server.currentUrl) .disabled(true) .textFieldStyle(.roundedBorder) HStack { Button(text, action: toggleWebServer) .disabled(!server.isRunning && content.storage.outputScope == nil) Button(action: { server.reloadPage() }) { Label("Reload", systemSymbol: .arrowClockwise) } .disabled(!server.isRunning) Button(action: { server.loadHomeUrl() }) { Label("Home", systemSymbol: .house) } .disabled(!server.isRunning) Spacer() } Spacer() } .padding() } private func toggleWebServer() { guard !server.isRunning else { server.stopServer() return } guard let folder = content.storage.outputScope?.url.path() else { print("No output folder to start server") return } server.startServer(in: folder) } }