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