Schließen-Knopf, Reihenfolge der Tabs in der Detailansicht angepasst.

This commit is contained in:
2026-04-11 09:10:46 +02:00
parent 471139ccab
commit 12d12a8276
4 changed files with 13 additions and 12 deletions
Vendored
BIN
View File
Binary file not shown.
@@ -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:
+1 -1
View File
@@ -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) {