refactor(ui): prioritize editor space

This commit is contained in:
Feror 2026-05-29 19:17:34 +02:00
parent 002fde6169
commit 0b01178f24

View file

@ -155,16 +155,17 @@ private final class SaplingAppModel: ObservableObject {
private struct MainWindow: View {
@ObservedObject var model: SaplingAppModel
@State private var isImportingMarkdown = false
@State private var columnVisibility: NavigationSplitViewVisibility = .all
var body: some View {
NavigationSplitView {
NavigationSplitView(columnVisibility: $columnVisibility) {
WorkspaceTreeView(
workspace: model.workspace,
onSelectFile: model.select(file:),
onSelectProject: model.select(project:)
)
.frame(minWidth: 220)
} content: {
.navigationSplitViewColumnWidth(min: 180, ideal: 220, max: 260)
} detail: {
if let editorViewModel = model.editorViewModel {
HybridMarkdownEditor(
viewModel: editorViewModel,
@ -174,16 +175,17 @@ private struct MainWindow: View {
} else {
EmptyEditorPlaceholder()
}
} detail: {
SaplingInspectorView(
project: model.selectedProject,
document: model.editorViewModel?.document ?? model.selectedDocument,
statuses: model.gitStatuses
)
.frame(minWidth: 260)
}
.toolbar {
ToolbarItemGroup {
Button {
toggleSidebar()
} label: {
Label("Toggle Sidebar", systemImage: "sidebar.leading")
}
.help("Toggle Sidebar")
.keyboardShortcut("0", modifiers: [.command, .option])
Button {
isImportingMarkdown = true
} label: {
@ -232,6 +234,10 @@ private struct MainWindow: View {
private func navigationTitle(for viewModel: HybridMarkdownEditorViewModel) -> String {
viewModel.hasUnsavedChanges ? "\(viewModel.document.title) *" : viewModel.document.title
}
private func toggleSidebar() {
columnVisibility = columnVisibility == .all ? .detailOnly : .all
}
}
private extension UTType {