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 { struct StackDetailView: View {
let initialStack: Stack let initialStack: Stack
let service: DockgeService let service: DockgeService
let onDismiss: () -> Void
@Environment(\.dismiss) private var dismiss
@State private var stack: Stack @State private var stack: Stack
@State private var selectedTab = 0 @State private var selectedTab = 0
@State private var isEditing = false @State private var isEditing = false
@@ -15,9 +15,10 @@ struct StackDetailView: View {
@State private var actionError: String? @State private var actionError: String?
@State private var showDeleteConfirmation = false @State private var showDeleteConfirmation = false
init(initialStack: Stack, service: DockgeService) { init(initialStack: Stack, service: DockgeService, onDismiss: @escaping () -> Void) {
self.initialStack = initialStack self.initialStack = initialStack
self.service = service self.service = service
self.onDismiss = onDismiss
_stack = State(initialValue: initialStack) _stack = State(initialValue: initialStack)
} }
@@ -81,9 +82,9 @@ private struct FloppyDiskShape: Shape {
// Tabs // Tabs
Picker("Tab", selection: $selectedTab) { Picker("Tab", selection: $selectedTab) {
Text("Services").tag(0) Text("Compose").tag(0)
Text("Compose").tag(1) Text("Env").tag(1)
Text("Env").tag(2) Text("Services").tag(2)
Text("Logs").tag(3) Text("Logs").tag(3)
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
@@ -107,12 +108,12 @@ private struct FloppyDiskShape: Shape {
} }
} }
ToolbarItem(placement: .navigationBarLeading) { ToolbarItem(placement: .navigationBarLeading) {
Button { dismiss() } label: { Button { onDismiss() } label: {
Image(systemName: "xmark") Image(systemName: "xmark")
} }
} }
ToolbarItemGroup(placement: .navigationBarTrailing) { ToolbarItemGroup(placement: .navigationBarTrailing) {
if selectedTab == 1 || selectedTab == 2 { if selectedTab == 0 || selectedTab == 1 {
if isEditing { if isEditing {
Button { Button {
Task { await deployChanges() } Task { await deployChanges() }
@@ -153,7 +154,7 @@ private struct FloppyDiskShape: Shape {
Button("Delete Stack", role: .destructive) { Button("Delete Stack", role: .destructive) {
Task { Task {
let error = await service.deleteStack(stack.name, endpoint: stack.endpoint) let error = await service.deleteStack(stack.name, endpoint: stack.endpoint)
if error == nil { dismiss() } if error == nil { onDismiss() }
if let msg = error { actionError = msg } if let msg = error { actionError = msg }
} }
} }
@@ -246,11 +247,11 @@ private struct FloppyDiskShape: Shape {
private var tabContent: some View { private var tabContent: some View {
switch selectedTab { switch selectedTab {
case 0: case 0:
ServicesTabView(stackName: stack.name, endpoint: stack.endpoint, service: service)
case 1:
ComposeTabView(yaml: $editYAML, isEditing: isEditing, onSave: saveChanges) ComposeTabView(yaml: $editYAML, isEditing: isEditing, onSave: saveChanges)
case 2: case 1:
EnvTabView(env: $editENV, isEditing: isEditing) EnvTabView(env: $editENV, isEditing: isEditing)
case 2:
ServicesTabView(stackName: stack.name, endpoint: stack.endpoint, service: service)
case 3: case 3:
LogsTabView(stackName: stack.name, endpoint: stack.endpoint, service: service) LogsTabView(stackName: stack.name, endpoint: stack.endpoint, service: service)
default: default:
+1 -1
View File
@@ -76,7 +76,7 @@ struct StacksView: View {
} }
.sheet(item: $selectedStack) { stack in .sheet(item: $selectedStack) { stack in
if let service = appState.dockgeService { if let service = appState.dockgeService {
StackDetailView(initialStack: stack, service: service) StackDetailView(initialStack: stack, service: service) { selectedStack = nil }
} }
} }
.sheet(isPresented: $showCreateSheet) { .sheet(isPresented: $showCreateSheet) {