diff --git a/.DS_Store b/.DS_Store index 3c7c73c..769c722 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/dock-g/dock-g.xcodeproj/project.xcworkspace/xcuserdata/sven.xcuserdatad/UserInterfaceState.xcuserstate b/dock-g/dock-g.xcodeproj/project.xcworkspace/xcuserdata/sven.xcuserdatad/UserInterfaceState.xcuserstate index c3f9405..9e1a04a 100644 Binary files a/dock-g/dock-g.xcodeproj/project.xcworkspace/xcuserdata/sven.xcuserdatad/UserInterfaceState.xcuserstate and b/dock-g/dock-g.xcodeproj/project.xcworkspace/xcuserdata/sven.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/dock-g/dock-g/Views/Stacks/StackDetailView.swift b/dock-g/dock-g/Views/Stacks/StackDetailView.swift index 4ea7d24..588705d 100644 --- a/dock-g/dock-g/Views/Stacks/StackDetailView.swift +++ b/dock-g/dock-g/Views/Stacks/StackDetailView.swift @@ -3,8 +3,8 @@ import SwiftUI struct StackDetailView: View { let initialStack: Stack let service: DockgeService + let onDismiss: () -> Void - @Environment(\.dismiss) private var dismiss @State private var stack: Stack @State private var selectedTab = 0 @State private var isEditing = false @@ -15,9 +15,10 @@ struct StackDetailView: View { @State private var actionError: String? @State private var showDeleteConfirmation = false - init(initialStack: Stack, service: DockgeService) { + init(initialStack: Stack, service: DockgeService, onDismiss: @escaping () -> Void) { self.initialStack = initialStack self.service = service + self.onDismiss = onDismiss _stack = State(initialValue: initialStack) } @@ -81,9 +82,9 @@ private struct FloppyDiskShape: Shape { // Tabs Picker("Tab", selection: $selectedTab) { - Text("Services").tag(0) - Text("Compose").tag(1) - Text("Env").tag(2) + Text("Compose").tag(0) + Text("Env").tag(1) + Text("Services").tag(2) Text("Logs").tag(3) } .pickerStyle(.segmented) @@ -107,12 +108,12 @@ private struct FloppyDiskShape: Shape { } } ToolbarItem(placement: .navigationBarLeading) { - Button { dismiss() } label: { + Button { onDismiss() } label: { Image(systemName: "xmark") } } ToolbarItemGroup(placement: .navigationBarTrailing) { - if selectedTab == 1 || selectedTab == 2 { + if selectedTab == 0 || selectedTab == 1 { if isEditing { Button { Task { await deployChanges() } @@ -153,7 +154,7 @@ private struct FloppyDiskShape: Shape { Button("Delete Stack", role: .destructive) { Task { let error = await service.deleteStack(stack.name, endpoint: stack.endpoint) - if error == nil { dismiss() } + if error == nil { onDismiss() } if let msg = error { actionError = msg } } } @@ -246,11 +247,11 @@ private struct FloppyDiskShape: Shape { private var tabContent: some View { switch selectedTab { case 0: - ServicesTabView(stackName: stack.name, endpoint: stack.endpoint, service: service) - case 1: ComposeTabView(yaml: $editYAML, isEditing: isEditing, onSave: saveChanges) - case 2: + case 1: EnvTabView(env: $editENV, isEditing: isEditing) + case 2: + ServicesTabView(stackName: stack.name, endpoint: stack.endpoint, service: service) case 3: LogsTabView(stackName: stack.name, endpoint: stack.endpoint, service: service) default: diff --git a/dock-g/dock-g/Views/Stacks/StacksView.swift b/dock-g/dock-g/Views/Stacks/StacksView.swift index e14f3ef..1cb87c1 100644 --- a/dock-g/dock-g/Views/Stacks/StacksView.swift +++ b/dock-g/dock-g/Views/Stacks/StacksView.swift @@ -76,7 +76,7 @@ struct StacksView: View { } .sheet(item: $selectedStack) { stack in if let service = appState.dockgeService { - StackDetailView(initialStack: stack, service: service) + StackDetailView(initialStack: stack, service: service) { selectedStack = nil } } } .sheet(isPresented: $showCreateSheet) {