Schließen-Knopf, Reihenfolge der Tabs in der Detailansicht angepasst.
This commit is contained in:
BIN
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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user